名称。使用variables添加到VBA中
如何使用以下variables创build以下不连续的命名范围?
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个variables,但是我无法使用多个variables来创build不连续的范围。
目前还不清楚你如何得到两个范围来设置你的variables,但是这里有一些使用联合方法的速记选项。
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
任何这些方法都会创build一个工作簿作用域的命名范围,或覆盖具有工作簿作用域的现有的Validation_Range命名范围的RefersTo:。
像手动创build一个名字,然后看看它是如何放在一起。 然后编写代码来组装这样一个string。
像这样的东西似乎工作:
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
以下是我重命名电子表格中所有标题的方法:
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个单元格,这就是为什么我需要使用“我”。 希望这可以帮助。