gpt4 book ai didi

vba - 无法修改未 protected 工作表

转载 作者:行者123 更新时间:2023-12-04 20:38:25 27 4
gpt4 key购买 nike

我有一张用密码保护的工作表。当我使用 VBA 更改该表上的任何内容时,我会像这样取消保护:

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 顺序设置为无。

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 方法的可选参数,我们可以设置为 True,默认为 False。通过将此参数设置为 True Excel 将允许所有 Excel VBA 宏在使用或不使用密码保护的工作表上运行。因此,您无需一直取消保护您的工作表。

对于您的其他问题,当边框已设置好时,Excel 有时会出现问题。因此,在更改它们之前尝试将边框设置为无。
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

关于vba - 无法修改未 protected 工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38432166/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com