я правильно понимаю, что если я использую команду какРазличные языки выдают при вставке формулы из VBA
Set myRange.formula = “=ROW(mySheet!R12)”
мой макрос вызывает #NAME?
ошибки появляются в клетках, если он выполняется, скажем, русский Excel. Я имею в виду, что в этом случае приведенная выше формула должна быть жестко закодирована как
Set myRange.formula = “=СТРОКА(mySheet!R12)”
где СТРОКА является русским аналогом функции SUM. Я бы не ожидал, что Excel будет достаточно умным, чтобы перевести формулы во время выполнения. Итак, есть ли способ обойти это и, самое главное, какой самый общий код для правильной работы макроса независимо от языка?
Итак, правильно ли вы правильно поняли, что использование .FormulaLocal сделает мой код абсолютно жизнеспособным и не зависит от системы languange? –
Тогда зачем нам нужен метод?). И почему бы им просто не интегрировать функциональность .FormulaLocal в метод .Formula?)) Странно достаточно –
Да, это должно быть. Все, что вам нужно, это убедиться, что вы используете [.FormulaLocal] (https://msdn.microsoft.com/en-us/library/office/ff838851.aspx) или [.FormulaR1C1Local] (https://msdn.microsoft.com/en-us/library/office/ff838568.aspx) соответственно. Ссылка 'R12' в вашем образце была немного неоднозначной; Надеюсь, я правильно понял. Кроме того, любые цитаты в формуле должны быть удвоены, поскольку они будут находиться в пределах строки с кавычками. например '=" abc "' становится '.FormulaLocal =" = "" abc "" "'. – Jeeped