【问题标题】:Names.Add in VBA using variablesNames.Add 在 VBA 中使用变量
【发布时间】:2016-10-10 15:34:18
【问题描述】:

如何使用以下变量创建以下非连续命名范围?

    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 个变量,它可以工作,但我无法使用多个变量来创建非连续范围。

【问题讨论】:

    标签: excel vba variables named-ranges contiguous


    【解决方案1】:

    以下是我重命名电子表格中所有标题的方法:

    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 个单元格合并一次,这就是我需要使用“i”的原因。希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      目前尚不清楚如何获得两个范围来设置变量,但这里有一些使用 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 命名范围的 RefersTo:

      【讨论】:

      • 我认为这正是我正在寻找的。 Union 函数似乎可以很容易地将变量组合在一个地方。谢谢!
      • 这部分代码正是我所需要的。再次感谢! 'Union(pm, statement_date).Name = "Validation_Range"
      【解决方案3】:

      手动创建一个您想要的名称,然后查看它是如何组合在一起的。然后编写代码来组装这样一个字符串。

      这样的事情似乎有效:

      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
      

      【讨论】:

        猜你喜欢
        • 2018-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多