提问人:starkiwi26 提问时间:10/14/2022 更新时间:10/14/2022 访问量:34
一旦工作表受到保护,VBA 就会停止工作
VBA stops working once the sheet is protected
问:
我有一个带过滤器的桌子。 我编写了简单的 VBA,以便当用户选择不同的选项时,VBA 将选择过滤器并自动对表格进行排序。它工作得很好。 然后,我隐藏、锁定和保护工作表以保持简单并防止用户更改公式。但是,一旦工作表受到保护(我勾选并授予了所有操作的权限),VBA仍然无法运行。如果我切换回“未受保护”,一切将再次正常。 我被困住了,希望其他专家能提出建议。 非常感谢!
简单的VBA如下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("BF1").Value = "Highest $" Then
Range("A5:CK288").Sort Key1:=Range("BG5:BG288"), Order1:=xlDescending
End If
If Range("BF1").Value = "Nearest end" Then
Range("A5:CK288").Sort Key1:=Range("BC5:BC288"), Order1:=xlAscending
End If
If Range("BF1").Value = "Customer" Then
Range("A5:CK288").Sort Key1:=Range("BE5:BE288"), Order1:=xlDescending
End If
If Range("BF1").Value = "Country" Then
Range("A5:CK288").Sort Key1:=Range("BD5:BD288"), Order1:=xlDescending
End If
If Target.Address = Range("BF2").Address Then
If Range("BF2") = "All" Then
Range("A5").AutoFilter Field:=56
Else
Range("A5").AutoFilter Field:=56, Criteria1:=Range("BF2").Value
End If
End If
If Target.Address = Range("BF3").Address Then
If Range("BF3") = "All" Then
Range("A5").AutoFilter Field:=54
Else
Range("A3").AutoFilter Field:=54, Criteria1:=Range("BF3").Value
End If
End If
End Sub
答:
0赞
Andrew
10/14/2022
#1
保护工作表时,有一些选项可以允许使用过滤器。勾选自动过滤器复选框。您还可以为单个单元格设置保护。我的英文翻译可能已关闭,但右键单击单元格,选择“设置单元格格式(?)”,然后在“保护”选项卡上,取消选中“锁定”。请参阅此链接。
评论
0赞
starkiwi26
10/15/2022
我勾选了自动过滤器复选框,实际上我勾选了所有框。尽管如此,当我保护工作表时,VBA 仍然停止工作。如果我取消保护工作表,一切将再次起作用。
评论