繁体   English   中英

VBA脚本中的excel命名范围

[英]excel named ranges in VBA script

我在用

Worksheets("Named_ranges").Range("A1").ListNames

Named_ranges表中写入命名范围的列表,但结果类似于

is_pp4 = Checklist!$D$28 

所以要显示=Checklist!$D$28 ,我需要按F2,然后按Enter。 我已经尝试按照其他答案中的建议将=替换为=,并且可以从Excel界面执行,但必须使用VBA脚本自动完成,并且从那里搜索和替换方法无法解决问题。 “计算”选项设置为“自动”。

这应该按照您的描述进行:

With Worksheets("Named_ranges").Range("A1")
    .ListNames
    .CurrentRegion.Numberformat = "General"
    .CurrentRegion.Replace "=", "=", xlPart
End With

编辑:我认为ListNames可能存在计时问题,因此循环可能会更好:

Dim n As Long
Dim arrData()
With ActiveWorkbook.Names
ReDim arrData(1 To .Count, 1 To 2)
For n = 1 To .Count
    arrData(n, 1) = .Item(n).Name
    arrData(n, 2) = .Item(n).RefersTo
Next n
End With
Worksheets("Named_ranges").Range("A1").Resize(UBound(arrData, 1), 2).Value = arrData

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM