For Each Sheet In ActiveWorkbook.Sheets
If Sheet.Index <> 1 Then
Sheet.Activate
Range("B1").Select
Call Something
ElseIf Sheet.Index = 1 Then
Sheet.Activate
Range("A1").Select
Call Something_new
End If
Next Sheet
我正在做一个项目,如果我在一个(列)表中过滤一些东西,它就会在每个其他(列)表中同步。 在上面的代码中,我使用的是 "如果" 基于工作表索引的条件。我需要使用基于所选列的条件,类似于这样的条件
if filters are made on Column A Then
Range("A1").select
Call something
if filters are made on Column B Then
Range("B1").select
Call something_else
我需要一些建议。
这些基础知识可能正是你所需要的--在一个标准的过滤表上(对我来说是sheet1)。
If Sheet1.AutoFilter.Filters.Item(1).On Then MsgBox ("Filter 1 is on")
项目1将是第一列,A列,你可以像这样测试每一个。
If Sheet1.AutoFilter.Filters.Item(1).On Then MsgBox ("Filter 1 is on")
If Sheet1.AutoFilter.Filters.Item(2).On Then MsgBox ("Filter 2 is on")
等,或者你可以像这样动态地循环测试。
Sub SelectFirstColumnWithFilter
Dim i As Long
For i = 1 To Sheet1.AutoFilter.Filters.Count
If Sheet1.AutoFilter.Filters.Item(i).On Then Cells(1, i).Select: Exit Sub
Next i
End Sub