2017-06-16 96 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

相關問題