在 excel vba 中找到选定的列

Find the selected column in the excel vba

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

我正在做一个项目,如果我在一个(列)sheet 中过滤某些东西,它将在每个其他(列)sheet.
中同步上面的代码,我正在使用基于 sheet 索引的 "if" 条件。
我需要使用基于所选列的条件,一些东西像这样

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

我需要一些建议,

这些基础知识可能正是您所需要的 - 在标准过滤 sheet(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