Замените формулу входа ‘@’ на VBA

#excel #vba #excel-formula

#excel #vba #excel-формула

Вопрос:

Я пытаюсь заменить знак «@» в формуле из таблицы «Входные данные» этим кодом, но это не удается:

 Sub replace()
    Dim fnd As Variant
    Dim rplc As Variant
    fnd = "@"
    rplc = "test"
    ThisWorkbook.Sheets("Inputs").Cells.replace what:=fnd, Replacement:=rplc, _
    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
    SearchFormat:=False, ReplaceFormat:=False
End Sub
  

Например, формула может быть =(100 - (@initialratio*100)) * D10 , и я пытаюсь заменить ‘@’.

Я могу заменить ‘@’ вручную, но не могу с помощью кода vba. Кто-нибудь может мне помочь? Спасибо

Комментарии:

1. Пожалуйста, более подробно расскажите о том, что вы имеете в виду, когда говорите «но это не удается».

2. извините, это ничего не делает, ничего не заменяя. Если я попытаюсь заменить ‘initialratio’, он заменит хорошо, но не тогда, когда я делаю это со знаком ‘@’.

3. может быть, лучше исправить проблему в источнике. как формула помещается в ячейку?

Ответ №1:

Попробуйте это

 Sub Replace()
    Dim fnd, rplc
    fnd = "@"
    rplc = "test"
    ThisWorkbook.Sheets("Inputs").Cells.Replace What:=fnd, Replacement:=rplc, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
End Sub