VB按单元名称获取范围

时间:2017-06-16 16:22:37

标签: excel vbscript

虽然在我的脚本的早期阶段,我遇到了想要动态地获取列中单元格范围的问题,因为我不断添加新单元格。我研究了按列名获取范围,但是我收到错误,“运行时错误'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”,第二行显示我将如何使用固定范围,这确实有效。

1 个答案:

答案 0 :(得分: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

  

请注意,您必须用实际的SUBSYSTEM列字母标识符代替 Z (5个地方)。