VBA命名范围下落参考
我有一个名为“MyRange”的命名范围。 它被定义为='Sheet1'!$A:$A
在VBA中,我有公式LastRow= Cells(Rows.Count, Range("MyRange").Column).End(xlUp).Row
。 它应该返回名称范围中的数据的最后一行。 但是,它将返回当前所在表格的A列中的最后一行。 为什么表单引用被从命名的范围中删除,我怎样才能保留它?
尝试使用这个:
LastRow = range("MyRange").Worksheet.Cells(Rows.Count, Range("MyRange").Column).End(xlUp).Row
编辑同样的方法作为另一个答案:)花太久完成答案!
它失败的原因是CELLS在默认情况下引用当前活动工作表。 在CELLS之前添加范围(“MyRange”)。工作表使其在包含“MyRange”的工作表上操作。
你的代码的语法是这样的:对于Cells参数和Rows参数,它将引用活动表单而不是指定范围中的表单。
维护工作表参考的语法可以是:
With Range("myrange").Worksheet LastRow = .Cells(.Rows.Count, [myrange].Column).End(xlUp).Row End With
注意单元格前面的“点”,以及行(和列)。
你可以随时尝试:
With Sheet1 LastRow = Cells(Rows.Count, Range("MyRange").Column).End(xlUp).Row End With
另一个想法:尝试没有MyRange周围的“”
LastRow= Cells(Rows.Count, Range(MyRange).Column).End(xlUp).Row