2016-11-03 130 views
0

我想命名一個字符串變量的單元格數量,然後添加一個數字。現在我有這個,但它不通過單元格循環,它只是命名最後一個在loopp,D978。我會感謝您的幫助!如何命名獨立的範圍使用Excel VBA

Sub NameRange_Add() 
Dim cell As Range 
Dim RangeName As String 
Dim CellName As String 
Dim i As Integer 
Dim j As Integer 


'Single Cell Reference (Worksheet Scope) 

For j = 3 To 8 
For i = 2 To 6 
RangeName = "tag" & i 
CellName = "D97" & j 

    Set cell = Worksheets("TAG AD").Range(CellName) 
    Worksheets("TAG AD").Names.Add Name:=RangeName, RefersTo:=cell 

    Next i 
Next j 

End Sub 
+0

對不起,但這個循環看起來不太好。首先,你爲什麼使用兩個'For'循環? One Loop應該可以正常工作,因爲你只使用變量'i'作爲你的名字,'j'作爲你的單元格範圍。爲什麼不爲兩者使用一個變量?或者你想有6個不同的名字參考一個單元格?你也遇到了一個錯誤,因爲你的方法對不同的單元格有相同的名稱。 –

+0

另外''tag'&i'這個名字會與'TAG'列混淆,所以'TAG3'是一個已經存在的單元格,不能用作名字(小寫不會改變它)。 –

回答

0

此代碼應該工作,因爲它確實對我來說:

Sub NameRange_Add() 
Dim RangeName As String 
Dim Reference As String 
Dim i As Integer 

For i = 2 To 6 
    RangeName = "MyTag" & i 
    Reference = "='TAG AD'!$D$97" & i 
    Worksheets("TAG AD").Names.Add name:=RangeName, RefersTo:=Reference 
Next i 

End Sub 

這將產生以下引用名稱: Sample

如果您需要更多的assistence請發表評論。

編輯:請注意,您需要提供一個有效的名稱範圍爲"tag" & i無效。您可以通過手動添加其中一個名稱來手動檢查。

+0

感謝您的幫助。雖然我不得不添加2美元的工作。如果我運行你的代碼,它給了G1973的名字,我不知道爲什麼。 –

+0

是的,謝謝你的信息。如果沒有'$'s,只有在執行宏時所選單元格爲** A1 **時纔有效。我會將此編輯添加到答案中。 –