Страницы: 1
RSS
VBA как вставить в ячейку формулу с переменной
 
Добрый день
Подскажите пож, как вставить в ячейку формулу с переменной
Код
Cells(lLastRow + 1, 2).FormulaR1C1 = "=R[-1]C+" + dlt
Cells(lLastRow + 1, 2).FormulaR1C1 = "=R[-1]C+dlt"
Cells(lLastRow + 1, 2).FormulaR1C1 = "=R[-1]C+" & dlt

Не работает ни так, ни так. dlt - это переменная, высчитывается в коде ранее
 
Код
Cells(lLastRow + 1, 2).FormulaR1C1 = "=R[-1]C" + dlt
There is no knowledge that is not power
 
Код
Cells(lLastRow + 1, 2).FormulaR1C1 = "=R[-1]C" & dlt
 
не работает
 
Покажите в своем примере.
 
Друзья, помогите разобраться.
Новую тему создавать не стал. Вроде бы моя проблема подходит под эту тему.
Есть кнопка на некой форме, по клику на которую в ячейку вставляется формула (таймер). Весь код работает, но есть проблема с синтаксисом свойства Formula.
В ячейке необходимо получить формулу вида: "=43578,6860069444-ТДАТА()". Пробовал несколько вариантов записи. Они работают только в том случае, когда перед знаком "=" поставить пробел. Но, тогда в ячейке формула отображается в виде текста, и приходиться в ручную лезть в ячейку и удалять этот пробел.

Варианты написания строки кода с комментариями:
   Selection.FormulaR1C1 = "=" & CDbl(time3) & "-ТДАТА()" 'выдает ошибку 1004"
   Selection.FormulaR1C1 = " =" & CDbl(time3) & "-ТДАТА()" 'Ошибку не выдает, но в формулу перед знаком "=" пишет пробел, который необходимо удалить вручную.
   Selection.FormulaR1C1 = "=-ТДАТА()+" & CDbl(time3) 'пробовал поменять слагаемые местами. Все равно, без пробела перед знаком "=" выдает ошибку.
 
Kulkijalle, для .Formula, .FormulaR1C1 формулы должны быть на "родном" языке - десятичный разделитель точка, и названия функций на английском.
Так что варианты
Код
Selection.FormulaR1C1Local = "=" & CDbl(time3) & "-ТДАТА()"
'или
Selection.FormulaR1C1 = "=" & Str(CDbl(time3)) & "-NOW()"
Второй вариант будет работать для любой локали, первый - только для русской.
 
Казанский, спасибо.
Все заработало.
Страницы: 1
Наверх