Страницы: 1
RSS
Как макросом преобразовать формулу из диспетчер имен
 
Здравствуйте, подскажите  возможно ли макросом преобразовать формулу из диспетчер имен. Например я создал формулу в диспетчере имен присвоил ей имя, и теперь могу её вводить в ячейки, не полностью, а по названию. Можно сделать так, чтобы допустим я встал на одну из таких формул, запустил макрос, и в ячейки появилась полностью прописанная формула.
 
Добрый день.
Код
Sub tt()
    ActiveCell.Formula = Names(Replace(ActiveCell.Formula, "=", "")).RefersTo
End Sub
Изменено: Hugo - 14.08.2020 21:28:39 (Чуть сократил :))
 
Спасибо
Изменено: Delux - 01.09.2020 00:29:58
 
А можно как то из формулы макросом убрать имя листа, на котором запущен этот макрос, т.е если ссылается на другие листы то, эти ссылки остаются?
 
Попробуйте так

Код
Sub tt()
    ActiveCell.Formula = Replace(Names(Replace(ActiveCell.Formula, "=", "")).RefersTo, ActiveSheet.Name & "!", "")
End Sub
Изменено: New - 01.09.2020 00:38:02
 
В данном случае не срабатывает. Ваш макрос в примере "AQQ".
 
В вашем 1-м примере имя листа было без пробела, а сейчас с пробелом. Поправил код

Код
Sub AQQ()
    ActiveCell.Formula = Replace(Names(Replace(ActiveCell.Formula, "=", "")).RefersTo, "'" & ActiveSheet.Name & "'!", "")
End Sub
Изменено: New - 01.09.2020 02:44:53
 
А можно сделать чтобы он был универсальным, как-то их совместить? Если нет, то все равно спасибо, что помогли.
 
Последний код уже универсальный
 
Если убрать пробел и скобки, то нет
Изменено: Delux - 02.09.2020 23:21:30
 
Дайте пример, с каким именем листа не работает, мы поправим
 
Код
Sub test()
    Dim s$, ss$
    s = ActiveCell.Formula
    ss = Names(Mid(s, 2, Len(s))).RefersTo
    ActiveSheet.Names.Add "__tmp__", "=$A$1"
    s = Names("__tmp__").RefersTo
    s = Mid(s, 2, Len(s))
    s = Mid(s, 1, Len(s) - 4)
    Names("__tmp__").Delete
    ActiveCell.Formula = Replace(ss, s, "")
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 03.09.2020 08:48:47
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Да, то что нужно, Спасибо
Страницы: 1
Наверх