2016-06-09 105 views
1

如何使用以下變量創建以下不連續的命名範圍?Names.Add in VBA using variables

ActiveWorkbook.Names.Add Name:="Validation_Range", RefersToR1C1:= _ 
    "='Holding Template'!R3C1,'Holding Template'!R4C2" 

下面是變量:

Dim PM As Range 
Dim statement_date As Range 

Set PM = ws.Range("A3") 
Set statement_date = ws.Range("B4") 

如果我使用1個可變它的工作原理,但我無法使用多個變量來創建非連續範圍。

回答

0

目前尚不清楚你是如何得到這兩個範圍設置您的變量,但這裏使用的是Union method的一些快捷選項。

Dim pm As Range, statement_date As Range 
With Worksheets("Holding Template") 
    Union(.Cells(3, 1), .Cells(4, 2)).Name = "Validation_Range" 
    'alternate 
    'Union(.Range("A3"), .Range("B4")).Name = "Validation_Range" 
    'alternate 
    'Set pm = .Range("A3") 
    'Set statement_date = .Range("B4") 
    'Union(pm, statement_date).Name = "Validation_Range" 
End With 

任何這些方法產生的工作簿範圍的命名範圍或覆蓋引用關聯:與工作簿範圍現有Validation_Range命名範圍的

+0

我想這正是我要找的。 Union函數似乎可以很容易地將變量合併到一個地方。謝謝! –

+0

這部分代碼正是我所需要的。再次感謝! 'Union(pm,statement_date).Name =「Validation_Range」 –

0

創建一個你想要的名字,然後看看它是如何放在一起的。然後編寫代碼來組裝這樣一個字符串。

像這樣的事情似乎工作:

Sub test() 
    Dim PM As Range, ws As Worksheet 
    Dim statement_date As Range 

    Set ws = Sheets("Holding Template") 
    Set PM = ws.Range("A3") 
    Set statement_date = ws.Range("B4") 

    ActiveWorkbook.Names.Add Name:="Validation_Range", RefersTo:= _ 
     "='" & ws.Name & "'!" & PM.Address & ",'" & ws.Name & "'!" & statement_date.Address 
End Sub 
0

以下是我改名爲所有的標題在我的電子表格:

Sub renameheader() 
i = 5 
For x = 1 To 30 
Worksheets("CHECKALL_LIST").Cells(1, i).Name = "Checks_" & x 
i = i + 3 
Next 
End Sub 

的標題是每3個單元合併,這就是爲什麼我需要使用「我」。希望這可以幫助。

相關問題