Har*_*y B 6 excel vba protection conditional-formatting excel-vba
我正在通过Worksheet_Change事件运行一段代码,我让它在事件开始时调用unprotect sub,并在事件结束时调用一个protect sub.这按预期工作.
我正在尝试将保护设置为userinterfaceonly:=在工作簿打开事件中为true,以消除每次更改事件触发时取消保护和重新保护的需要(更多只是为了探索功能而不是其他任何事情).问题是,如果工作表受到保护(即使使用UserInterfaceOnly = True),更改锁定范围上的条件格式的代码也会发生错误,尽管它可以正常工作并且如果工作表未受到保护,无论是手动还是通过VBA在该行之前取消保护工作表在那条线之后重新保护.
我玩了一下,似乎有任何关于更改锁定单元格上的条件格式的错误.我不知道是否在锁定范围内改变条件格式,而被保护片不UserInterfaceOnly的范围之内允许?如果有人知道这是否是一个限制,如果这个论点有任何其他限制,那么很高兴知道.
在我的"本工作簿"模块中,我有:
Private Sub Workbook_open()
ActiveSheet.Protect userinterfaceOnly:=True
End Sub
Run Code Online (Sandbox Code Playgroud)
在我的工作表模块中,我有以下 - FormatConditions.Delete行错误,运行时错误1004:应用程序或对象定义错误,当Case解析为true时.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$6" Then
Application.ScreenUpdating = False
Select Case Range("D6")
Case "Select Function"
Range("F6").Value = ("")
Range("H4:I4").Select
Selection.FormatConditions.Delete <<<<<<THIS LINE ERRORS
Selection.ClearContents
Call DeleteButtons
Call HideAll
Range("D6").Select
Case "Goods In & Redelivery"
Range("F6").Value = ("EXPLANATORY TEXT")
Call DeleteButtons
Range("D10:F10").ClearContents
Call UnHideAll
Call HideCollection
Call FillDelivery
Call GIRButtons
Range("D10").Select
Case "Collection & Redelivery"
Range("F6").Value = ("EXPLANATORY TEXT")
Call DeleteButtons
Call UnHideAll
Call HideGoodsIn
Call ClearDelivery
Call CRButtons
Range("H4").Select
Case "Delivery Only"
Range("F6").Value = ("EXPLANATORY TEXT")
Call DeleteButtons
Call UnHideAll
Call HideGoodsInCollection
Call ClearDelivery
Call DelButtons
Range("H4").Select
End Select
Application.ScreenUpdating = True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4256 次 |
| 最近记录: |