我有一张表格,我使用高级筛选器在工作簿中的另一个表格中搜索信息。
此外,我想保护工作表,因为我在单元格中使用了一些公式,人们不应该能够更改,但我也有一些需要用户提供信息的单元格,因此我已经解锁了这些单元格,如下所示: 当我点击“筛选”按钮时,尝试运行高级筛选器时出现错误消息:“无法在受保护的工作表中运行高级筛选器。” 因此,我将以下代码与我的“筛选”按钮相关联:
此外,我想保护工作表,因为我在单元格中使用了一些公式,人们不应该能够更改,但我也有一些需要用户提供信息的单元格,因此我已经解锁了这些单元格,如下所示: 当我点击“筛选”按钮时,尝试运行高级筛选器时出现错误消息:“无法在受保护的工作表中运行高级筛选器。” 因此,我将以下代码与我的“筛选”按钮相关联:
Private Sub Filtrar_Click()
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Worksheets
wks.Unprotect "Password"
Call LimparAntes
wks.Protect "Password", UserInterfaceOnly:=True
Next
End Sub
LimparAntes子程序是调用高级筛选器的例程,但我仍然遇到同样的错误,所以我有些疑惑。以下是代码:
Sub LimparAntes()
'
' LimparAntes Macro
'
'
Dim Lastrow As Long
Lastrow = Sheets("AUX").Range("A" & rows.Count).End(xlUp).Row
Sheets("AUX").Range("A1:K" & Lastrow).AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("CONSULTA").Range("D34:I35"), CopyToRange:=Sheets("CONSULTA").Range("B40:K40"), Unique:= _
False
Sheets("CONSULTA").Range("F37").Select
End Sub
这是正确的做法吗?我做了很多研究,但我找不到任何一个遇到高级筛选器与我有同样问题的人,所以我甚至不知道是否可能实现我想要的。
LimparAntes
是做什么用的? - Mathieu GuindonLimparAntes
是调用我的高级筛选器搜索标准的子程序的名称。我还编辑了问题并附上了代码。 - paulinhaxLimparAntes
需要2个工作表才能完成工作:Sheets("AUX")
和Sheets("CONSULTA")
,其中一个始终会受到保护。 - paul bica