从另一个工作表

时间:2016-05-13 21:47:03

标签: excel vba excel-vba filter worksheet

我正在尝试使用其他工作表中的值过滤列。我希望能够从Spreadsheet S1中单击B列中的任何位置,并能够使用S1中同一行中的A列值过滤电子表格S2中的A列。使用下面的代码,我可以使用单元格A3中的值过滤S2中的A列。

Sheets("S2").Select
    ActiveCell.Select
    Selection.AutoFilter
ActiveSheet.Range("$A$1:$N$100").AutoFilter Field:=1, Criteria1:= _
    "=" & Sheets("S1").Range("A3"), Operator:=xlAnd

End Sub

我希望能够使用下面的代码能够从ActiveCell左侧的A列中选择值,而不是说A3(如上面的代码所示)。

ActiveCell.Offset(0, -1).Select
        ActiveCell. Select
        Selection.Copy

我应该使用Criteria1:=来实现这一目标。使用"=" & ActiveCell .Value, Operator:=x1And可以让我使用S2中的值,但"=" & Sheets("S1").Range(ActiveCell. Value), Operator:=x1And会出错。

1 个答案:

答案 0 :(得分:0)

ActiveCell在整个Application(Excel)

中都是唯一的

所以,如果你想在工作表之间跳转,仍然引用特定的 Worksheet "ActiveCell"(即那个<{1}}的单元格,如果那个< em>具体 Application.ActiveCell是活动的)然后您必须先将其存储在Worksheet类型的变量中,然后再离开特定的 Range

Worksheet

但你也可以避免&#34;表格跳转&#34;:如果您当前有效的Dim MyActiveCell As Range Set MyActiveCell = ActiveCell ' store the reference to currently active cell of active sheet Sheets("S2").Activate ' "jump" to another Worksheet Sheets("S2").Range("$A$1:$N$100").AutoFilter Field:=1, Criteria1:=MyActiveCell.Offset(0, -1).Value ' use MyActiveCell to reference the "active" cell previously stored 是您要引用其Worksheet并将其用于&#34; S2& #34; ActiveCell过滤,你可以去:

Worksheet

继续&#34;留下&#34;在活动表中同时&#34;表演&#34;在其他工作表上只需完全限定范围并在其上调用方法

Sheets("S2").Range("$A$1:$N$100").AutoFilter Field:=1, Criteria1:=ActiveCell.Offset(0, -1).Value ', Operator:=xlAnd