excel - 重命名命名范围

标签 excel vba

我有一个工作簿,其中有许多要重命名的命名范围。我有一个包含旧名称和新名称的电子表格。

这有效:

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

循环由你决定。 :) 让我们知道这是否有帮助。

关于excel - 重命名命名范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21443737/

相关文章:

HTML 表单不会提交,可能是表单验证问题

excel - 用Excel随机生成x个整数与y的和

vba 将数组中的所有值设置为相同值的更好方法

ms-access - 如何判断表单是否作为子窗口启动

android - 在应用程序中打开 Excel 文件,无需安装 Excel

java - 使用 apache POI 和 java 访问 excel 数据时出现错误

excel - VBA Excel DataForm(搜索按钮上的 Else If 语句)

Excel VBA - =在宏中查找

VBA清除所选段落的格式

python - 将 Excel 工作表中的日期与某个固定日期进行比较并打印值