未受保护sheet无法修改
Unprotected sheet cannot be modified
我有一个 sheet,我用密码保护了它。当我用 VBA 更改 sheet 上的任何内容时,我会这样取消保护:
Private Sub Worksheet_Change(ByVal target As Range)
ActiveSheet.Unprotect Password:="pass"
'do stuffs
ActiveSheet.Protect Password:="pass"
End Sub
问题是我仍然在这一行收到此错误消息:
For j = 13 To 12 + numberofsomething
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlContinuous '<---Here
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
Next j
Run-time error: 1004
Unable to set the LineStyle proprety of the Borders class
可能是什么问题?
每次都保护和取消保护工作表效率不高。
您可以像这样保护您的所有工作表:
如果您已经准备好边框,有时 Excel 会遇到问题,因此只需将 B 顺序设置为 None 在格式化之前。
Private Sub Workbook_Open()
Dim wks As Worksheet
'Loop over all Sheets
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:="Secret", _
UserInterFaceOnly:=True
Next wks
End Sup
UserInterFaceOnly是Protect Method的可选参数,我们可以设置为True,默认为False。通过将此参数设置为 True Excel 将允许所有 Excel VBA 宏到工作表上的 运行,无论是否使用密码保护。所以你不需要一直取消保护你的工作表。
对于您的其他问题,Excel 有时会在边框已设置好时出现问题。因此,在更改边框之前尝试将边框设置为 None。
For j = 13 To 20
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlNone
End With
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlContinuous '<---Here
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
Next j
我有一个 sheet,我用密码保护了它。当我用 VBA 更改 sheet 上的任何内容时,我会这样取消保护:
Private Sub Worksheet_Change(ByVal target As Range)
ActiveSheet.Unprotect Password:="pass"
'do stuffs
ActiveSheet.Protect Password:="pass"
End Sub
问题是我仍然在这一行收到此错误消息:
For j = 13 To 12 + numberofsomething
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlContinuous '<---Here
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
Next j
Run-time error: 1004 Unable to set the LineStyle proprety of the Borders class
可能是什么问题?
每次都保护和取消保护工作表效率不高。
您可以像这样保护您的所有工作表: 如果您已经准备好边框,有时 Excel 会遇到问题,因此只需将 B 顺序设置为 None 在格式化之前。
Private Sub Workbook_Open()
Dim wks As Worksheet
'Loop over all Sheets
For Each wks In ActiveWorkbook.Worksheets
wks.Protect Password:="Secret", _
UserInterFaceOnly:=True
Next wks
End Sup
UserInterFaceOnly是Protect Method的可选参数,我们可以设置为True,默认为False。通过将此参数设置为 True Excel 将允许所有 Excel VBA 宏到工作表上的 运行,无论是否使用密码保护。所以你不需要一直取消保护你的工作表。
对于您的其他问题,Excel 有时会在边框已设置好时出现问题。因此,在更改边框之前尝试将边框设置为 None。
For j = 13 To 20
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlNone
End With
With Range("H" & j & ":L" & j).Borders
.LineStyle = xlContinuous '<---Here
.Weight = xlMedium
.Color = RGB(255, 0, 0)
End With
Next j