macros以从另一个工作表中的活动单元格上进行筛选
我正在尝试使用另一个工作表中的值过滤一列。 我希望能够在Spreadsheet S1的B列中的任意位置点击,并且能够使用S1中同一行的列A的值在Spreadsheet 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
结束小组
我希望能够使用下面的代码,以便能够从ActiveCell
左侧的列A中select值,而不是说A3(如上面的代码中所示)。
ActiveCell.Offset(0, -1).Select ActiveCell. Select Selection.Copy
我应该使用什么作为Criteria1:=
能够实现这一点。 使用"=" & ActiveCell .Value, Operator:=x1And
让我使用S2中的值,但是"=" & Sheets("S1").Range(ActiveCell. Value), Operator:=x1And
给出一个错误。
ActiveCell在整个Application
都是唯一的(Excel)
所以如果你想在表单之间跳转,并且仍然引用一个特定的 Worksheet
"ActiveCell"
(即,如果该特定的 Worksheet
是活动的单元格,那么该单元格将是实际的Application.ActiveCell
),那么你必须首先将它存储在一个Range
types的variables在离开特定的 Worksheet
之前:
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
是您想要引用ActiveCell
并将其用于“S2” Worksheet
过滤的Worksheet
,则可以执行以下操作:
Sheets("S2").Range("$A$1:$N$100").AutoFilter Field:=1, Criteria1:=ActiveCell.Offset(0, -1).Value ', Operator:=xlAnd
并在活动表中“继续”,而在其他表单上进行“表演”时,只需完全限定范围和调用方法即可
Sheets("MyOtherSheet").Range("MyOtherSheetRangeAddress").ProperRangeMethod
- 对于工作簿中的所有工作表,i = 2到thisworkbook.worksheets.count
- 更改Excel中最后4个Excel工作表(VBA)的选项卡颜色
- 运行时错误'1004'对象'_Global'的方法'范围'失败 – dynamic表名,循环,工作表间search
- 如何创buildExcel工作表并将其添加到Excel InterOp中的多个工作簿
- 循环浏览文件夹中所有Excel工作簿中的所有工作表,以更改所有单元格中文本的字体,字体大小和alignment方式
- 如何以编程方式删除一个Excel工作表VB.NET
- openpyxl – 遍历列和行以从表格中间获取数据
- 从.XLSX的VBA复制工作表并将其插入.XLA文件
- 获取Excel工作表名称在SQL Server中