我有一张带过滤器的桌子。我编写了简单的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发布于 2022-10-14 07:19:52
保护工作表时,有允许筛选器的选项。勾选“自动筛选”复选框。还可以设置单个单元格的保护。我的英文翻译可能是关闭的,但右击单元格,选择格式单元格(?),然后在“保护”选项卡上取消勾选“锁定”。请参阅此链接。
https://stackoverflow.com/questions/74063102
复制相似问题