我正在尝试浏览一系列单元格中的公式,并将工作表中的命名范围与该公式中的任何命名范围进行匹配,并将命名范围替换为其参考单元格。
Dim rng As Range
Dim workrng As Range
Dim xname As Name
Dim arr() As Variant
Dim arr_string as String
Set workrng = Application.Selection
Set workrng = Application.InputBox("txt", "header txt", workrng.Address, Type:=8
Set workrng = workrng.SpecialCells(xlCellTypeFormulas)
For Each rng In workrng
For Each xname in ThisWorkbook.names
arr = Split(xname.Name, "!")
arr_string = arr(1)
Debug.Print arr_string
If InStr(rng.Formula, xname.Name) > 0 Then
rng.Formula = VBA.Replace(rng.Formula, xname.Name, VBA.Replace(xname.RefersTo, "=", ""))
End If
Next
Next
当我调试打印“ xname.Name”时,得到的结果包括工作表名称。例如:规范!_MyNamedRange。但是,单元格中的公式仅显示:_MyNamedRange。这就是为什么我要拆分它。但是,当我调试数组时,其中没有任何内容。
答案 0 :(得分:1)
没有工作表就很难确切知道该怎么办。但是您需要进行一些更改:
Dim arr() As Variant --> Dim arr As Variant
arr = Split(xname.Name, "!") --> arr = Split(xname.RefersTo, "!")