VB按单元格名称获取范围

而在我的脚本的早期阶段,我遇到了想dynamic获取列中单元格范围的问题,因为我不断地添加新的单元格。 我看着通过列名得到范围,但我得到的错误,“运行时错误”1004“:应用程序定义或对象定义的错误”。 我可能是错误的了解列名的范围,有谁知道为什么我得到这个错误?

这是我的代码到目前为止:

Sub autoFill() Sheets("Unit #2").Range("SUBSYSTEM").Copy Destination:=Sheets("Test").Range("A1") Sheets("Unit #2").Range("B2:B38").Copy Destination:=Sheets("Test").Range("B1") End Sub 

第一行显示了我想要获得列的内容,“SUBSYSTEM”,第二行显示了如何在固定范围内执行此操作。

转到单元#2工作表并使用SUBSYSTEMselect列标题单元格。

select公式,定义名称,名称pipe理器命令。 打开时,select新build。

使用SUBSYSTEM作为名称; 将其留作工作簿范围,并使用以下内容来引用:

 'for text values in the SUBSYSTEM column ='Unit #2'!$Z$1:INDEX('Unit #2'!$Z:$Z, MATCH("zzz", 'Unit #2'!$Z:$Z)) 'for number values in the SUBSYSTEM column ='Unit #2'!$Z$1:INDEX('Unit #2'!$Z:$Z, MATCH(1e99, 'Unit #2'!$Z:$Z)) 

点击OK。 现在你的代码应该工作。

在这里输入图像说明

请注意,您将不得不使用实际的SUBSYSTEM列字母标识符replaceZ (5个位置)。