2017-10-20 80 views
1

有很多相似的事情,但不完全是我的問題。我試圖根據選項卡名稱的詳細信息來命名每個選項卡的範圍。我已將標籤名稱放在一張工作表中,現在要根據這些單元定義命名範圍。我無法讓它喜歡帶變量的範圍名稱。爲每張紙創建一個命名範圍列表

Sub Test() 

    Dim x As Integer 
    Dim y As String 
    Dim YY As String 
    Dim z As String 
    Dim ZZ As String 

    For x = 1 To Worksheets.Count 

    Sheets("List of Tab Names").Activate 

    y = Cells(x, 1).Value 
    z = Cells(x, 2).Value 
    YY = y & "Data2" 
    ZZ = z & "YoA2" 


    Sheets(y).Activate 

    Range("C9:BG233").Name = " ' " & YY & " ' " 
    Range("C7:BG7").Name = " ' " & ZZ & " ' " 

    Next x 

End Sub 

回答

0

您不需要圍繞範圍名稱使用單引號。剛剛嘗試:

Range("C9:BG233").Name = YY 
Range("C7:BG7").Name = ZZ 
+0

我得到一個運行錯誤'1004':消息。它說我試圖用非字母或下劃線來命名。所以,我正在更改列的名稱,以查看是否有幫助。 – user8806917

+0

你對y和z有什麼價值?我假設y正是你的工作表名稱,但如果他們有任何空格或連字符,它會導致問題。 – Michael

+0

啊!標籤名稱中有空格。謝謝! – user8806917

0

如果我有你的想法正確,我認爲你缺少的是功能Worksheets(sheetname)

正如你可以在這裏的代碼中看到:

Range("A1:A5").Name = Worksheets("Sheet2").Range("A1") 
+0

我的問題是我想遍歷所有的表單並命名它們。我需要將Sheet2變成一個循環。 – user8806917

+0

函數'Worksheets()'可以和一個整數一起使用(比如'Worksheets(1)'),所以你可以做一個for循環遍歷所有表單。或者你只是想給表單命名? – amitklein

相關問題