我有一个巨大的宏,我正在努力减少,通过使用循环结构来替换当前使用的硬编码地址与变量。 其中一个陈述是使用单元格地址
with worksheets("Sheet1")
.Cells(4, 1).AutoFilter Field:=36, Criteria1:=Worksheets("Test").Range("c1")
end with
我想使用行/列
在此示例中col = 3,我收到运行时错误“1004”错误:
“应用程序定义或对象定义”
.Cells(4, 1).AutoFilter Field:=36, Criteria1:=Worksheets("Test").Range(Cells(1, col), Cells(1, col))
对于此用例,将地址转换为变量的最佳方法是什么。
答案 0 :(得分:0)
.Cells(4, 1).AutoFilter Field:=36, _
Criteria1:=Worksheets("Test").Range(Cells(1, col), Cells(1, col))
这里Range()
的范围是"测试"表格,但不合格的Cells()
将参考活动表格:如果不是"测试"然后你会得到1004错误。
由于您只有一个单格范围,因此可以使用:
.Cells(4, 1).AutoFilter Field:=36, _
Criteria1:=Worksheets("Test").Cells(1, col)