如何通过指定单元格动态引用Excel Named Range的VBA实现方法
解决方案
直接将原代码里的固定命名区域名称替换为单元格引用即可,修改后的完整代码示例如下:
Dim nr As Name Dim wb As Workbook ' 按需指定目标工作簿,比如当前代码所在工作簿用ThisWorkbook,激活状态的用ActiveWorkbook Set wb = ThisWorkbook ' 从「Data」工作表E1单元格读取命名区域的名称 Dim targetRangeName As String targetRangeName = wb.Worksheets("Data").Range("E1").Value ' 通过读取到的名称获取对应的命名区域 Set nr = wb.Names.Item(targetRangeName)
额外建议
为避免E1单元格为空、名称拼写错误或命名区域不存在导致报错,可添加简单的错误处理逻辑:
On Error Resume Next Set nr = wb.Names.Item(targetRangeName) On Error GoTo 0 If nr Is Nothing Then MsgBox "未找到名为" & targetRangeName & "的命名区域,请检查E1单元格内容", vbExclamation End If
内容的提问来源于stack exchange,提问作者ZM85
相关产品推荐
相关产品推荐

