我的目标是将我刚刚粘贴的范围命名为一个独特的名称,以便我将来可以找到它。
复制和粘贴的范围来自下拉菜单,因此必须修改
Selection.Name.Formula = "=""AddSection_""&SUBSTITUTE('Add Section'!D3,"" "","""")"
如果他们在 D3 的下拉列表中选择 Oil Furnace,则该部分将被复制并粘贴。它应该命名为“AddSection_OilFurnace”
这可能吗?
我真正喜欢的是,如果我可以有一个命名范围,它可以根据之前存在的数量进行更新。例如,上面的部分为“AddSection_OilFurnace1”,下一部分为“AddSection_GasFurnace2”,依此类推。但我不知道如何或是否可能哈哈。会不会是这样的:
Worksheets("Add Section").ranges.count
这可能吗?它将如何进入我的命名公式?
我对 VBA 非常陌生,所以感谢您的帮助!
我认为YowE3K的做法是正确的。我重构了他的代码,因为我不喜欢Do Loop
.
Sub AddName()
Dim myNameBase As String
Dim arr() As String
Dim maxName As Long
Dim n As Name
myNameBase = "AddSection_" & Replace(Worksheets("Add Section").Range("D3").Value, " ", "")
For Each n In Names
If n.Name Like myNameBase & "*" Then
If n.Name = myNameBase Then
maxName = 1
ElseIf n.Name Like myNameBase & ".*." Then
arr = Split(n.Name, ".")
If arr(UBound(arr) - 1) >= maxName Then maxName = arr(UBound(arr) - 1) + 1
End If
End If
Next
Selection.Name = myNameBase & IIf(maxName, "." & maxName & ".", "")
End Sub
YouE3K 感谢您的帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)