我有一本工作簿,其中有许多要重命名的命名范围。我有一个包含旧名称和新名称的电子表格。
这有效:
Dim strOldName As String
Dim strNewName As String
strOldName = rngNamedRanges.Cells(1, 6).Value2
strNewName = strOldName & "_Renamed"
With ActiveWorkbook.Names(strOldName)
.Name = strNewName
End With
这不会:
Dim strOldName As String
Dim strNewName As String
strOldName = rngNamedRanges.Cells(1, 6).Value2
strNewName = CStr(rngNamedRanges.Cells(1, 8).Value2)
With ActiveWorkbook.Names(strOldName)
.Name = strNewName
End With
显然,我做错了分配strNewName
.
我也尝试过使用.text
, .value
,并修剪字符串,所有这些都具有相同的非结果。
非工作代码不会产生错误。只是改名字失败了。
rngNamedRanges.Cells(1,6)
指包含直接文本的单元格。
rngNamedRanges.Cells(1,8)
指的是包含CONCATENATE
公式,根据其他列中包含的其他几条信息创建新的范围名称。
改名总是一件痛苦的事情。请尝试以下操作:
Sub Rename()
StrOld = "MyRange1"
StrNew = StrOld & "_Renamed"
Range(StrOld).Name = StrNew
With ThisWorkbook
.Names(StrOld).Delete
End With
End Sub
循环由你决定。 :) 让我们知道这是否有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)