Vba 循环活动单元格的跨工作表参考问题
我试图结合以下2个子循环通过一个范围,取表4活动单元格中的值,并在表“数据库”中“包含”自动筛选该值 这是一个参考问题,因为自动筛选行是出错的行 代码如下: 选项显式Vba 循环活动单元格的跨工作表参考问题,vba,excel,Vba,Excel,我试图结合以下2个子循环通过一个范围,取表4活动单元格中的值,并在表“数据库”中“包含”自动筛选该值 这是一个参考问题,因为自动筛选行是出错的行 代码如下: 选项显式 Sub Test2() Dim searchedvalue As Range Sheets("4").Select Range("A2").Select 'Set Do loop to stop when an empty cell is reached. Do Until IsEmpty(ActiveCell)
Sub Test2()
Dim searchedvalue As Range
Sheets("4").Select
Range("A2").Select
'Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(ActiveCell)
Call FILTER1
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Sub FILTER1()
Dim searchedvalue As Range
Set searchedvalue = Sheets("4").ActiveCell.Selection
Sheets("Database").Range("q2").AutoFilter Field:=17, Criteria1:="=*" & searchedvalue.Value & "*", Operator:=xlAnd
End Sub
最后一行出现“对象不支持此属性或方法”错误。正在筛选的单元格的值是一个范围,该范围按顺序向下移动到a列od表“4”使用
选项Explicit
做得很好,但是使用选择方法和活动单元格
会遇到问题。相反,请使用范围
变量,如下所示:
Sub Test2()
Dim targetCell As Range
Set targetCell = ThisWorkbook.Sheets("4").Range("A2")
'Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(targetCell)
Call FILTER1(targetCell)
Set targetCell = targetCell.Offset(RowOffset:=1)
Loop
End Sub
Sub FILTER1(ByRef searchedCell As Range)
ThisWorkbook.Sheets("Database").Range("q2").AutoFilter Field:=17, Criteria1:="=*" & searchedCell.Value & "*", Operator:=xlAnd
End Sub
大概,在应用自动筛选后,您还有一些其他代码在FILTER1
中对数据执行某些操作?使用选项Explicit
做得很好,但是使用选择方法和活动单元格
会遇到问题。相反,请使用范围
变量,如下所示:
Sub Test2()
Dim targetCell As Range
Set targetCell = ThisWorkbook.Sheets("4").Range("A2")
'Set Do loop to stop when an empty cell is reached.
Do Until IsEmpty(targetCell)
Call FILTER1(targetCell)
Set targetCell = targetCell.Offset(RowOffset:=1)
Loop
End Sub
Sub FILTER1(ByRef searchedCell As Range)
ThisWorkbook.Sheets("Database").Range("q2").AutoFilter Field:=17, Criteria1:="=*" & searchedCell.Value & "*", Operator:=xlAnd
End Sub
大概您还有其他一些代码在应用自动筛选后在FILTER1
中对数据执行某些操作?这不是最后一行,而是这一行:Set searchedvalue=Sheets(“4”).ActiveCell.Selection
工作表没有ActiveCell
属性-只有应用程序有此属性-因此您只能引用活动工作表上的活动单元格。@Rory我们如何才能引用在任意工作表上曾经处于活动状态的单元格?@Gary's学生您必须在它处于活动状态时存储对它的引用激活,或者激活工作表,获取对它的引用,然后继续。这不是最后一行,而是这一行:Set searchedvalue=Sheets(“4”).ActiveCell.Selection
工作表没有ActiveCell
属性-只有应用程序有此属性-因此您只能引用活动工作表上的活动单元格。@Rory我们如何才能引用在任意工作表上曾经处于活动状态的单元格?@Gary's学生您必须在它处于活动状态时存储对它的引用激活,或激活工作表,获取对其的引用,然后继续。