2015-12-21 57 views
0

我有一個問題,我想用vba在excel中定義一個單元格名稱。我們選擇一個小區只有我一直在使用下面的代碼被證明很好地工作:不過,我需要的名字在列,即多個小區 Range("A1").Name = "zm_1"使用vba定義一組單元格名稱

Range("A1").Name = "zm_1" Range("A2").Name = "zm_2" Range("A3").Name = "zm_3" Range("A4").Name = "zm_4"

由於這爲100個細胞相當繁瑣,我一直在試圖使用數組:

For i=1 to 100 Range("A(i)").Name = "zm_(i)" next

^然而這給出了我有b中的錯誤een無法追蹤。任何想法/建議如何完成?謝謝!

回答

1

你並不需要一個數組,只是你的循環:

For i = 1 to 100 
Range("A" & i).Name = "zm_" & i 
next 
3

問題是與Range("A(i)").Name = "zm_(i)"的「指示某些文本,所以你應該把你(我)出來的」。

對於第一部分來說很簡單,因爲您也可以使用行和列的方式來描述單元格。因此變得

Range(Cells(i,1)).Name

爲您需要連接的文字和數字的第二部分。變成:"zm_" & i

+0

感謝您的解釋!工作好的歡呼 – user5702568

+0

不客氣。 Als看看Paresh J的答案,明確引用工作簿和工作表是一件值得記住的事情。如果你的代碼很小,只包含一個工作簿和工作表,這種方式與其他工作表沒有什麼不同,然而當更多的工作表或工作簿出現時,引用正確的代碼非常重要。現在你的代碼只是假定打開的工作簿是應該執行的一個計算,但是當多個工作表起作用時,必須明確地告訴代碼要去。 – Luuklag

+0

@ user5702568,您是否也可以通過接受我的答案來承認我的答案,並且通過這樣做也讓其他人知道這個問題已得到解決。 – Luuklag

1

嘗試下面的代碼,並希望它可以幫助你:

For i = 1 To 100 
ThisWorkbook.Sheets(1).Range("A" & i).Name = "zm_" & i 
Next 

Sheet(1)指當前工作簿的Sheet1。

+0

謝謝你的接吻!乾杯 – user5702568

相關問題