2017-06-16 55 views
0

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

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

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 

凡第一线显示我试图让列,“子系统”的内容,第二个显示我如何与固定做范围,这工作。

+0

您是使用命名范围命名整个列,还是只使用列标题“SUBSYSTEM”? – JNevill

+0

@JNevill它只是列标题 – kdean693

回答

1

转到单元#2工作表并选择列标题单元SUBSYSTEM

选择公式,定义名称,名称管理器命令。当它打开时,选择新建。

使用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)) 

单击确定。现在你的代码应该工作。

enter image description here

请注意,你将不得不替代实际的子系统列字母标识符到位ž(5位)的。

+0

那里你有'='的迹象,我是否设置这等于一个对象? – kdean693

+0

您正在定义一个**动态命名范围**,从列中的第一个单元格到该列中的最后一个值(文本或数字)。使用GoTo(F5)定义可以测试的名称后*转到SUBSYSTEM *,然后选择该列值。 – Jeeped

+0

谢谢,现在完美的作品。 – kdean693

相关问题