Я пытаюсь просмотреть формулы в диапазоне ячеек и сопоставить именованные диапазоны в рабочей таблице с любыми именованными диапазонами в формуле и заменить именованные диапазоны их ссылочными ячейками.
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.Вот почему я пытаюсь разделить это.Однако, когда я отлаживаю свой массив, в нем ничего нет.