#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