Добавить формулу с переменной в определенной ячейке с помощью VBA

Обновить

April 2019

Просмотры

40 раз

1

Я пытаюсь добавить формулу к определенной ячейке с помощью VBA. Формула должна содержать переменную, которую я вычисленное перед тем в сценарии VBA.

Формула выглядит так:

ActiveCell.FormulaR1C1 =
"=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP,rngCell_NoUsed.Column,FALSE),""NO LTCS 
VALUE AVAILABLE"")"

Переменная rngCell.Column является один я рассчитал до этого. Когда я делаю это так, VBA просто вставляет обычный текст в ячейке и сам Excel не может использовать значение за переменные и ВПР возвращает ошибку.

Спасибо заранее за вашу поддержку.

2 ответы

0

It pastes your variable as text because you've written it as text, not a variable.

When you write "Hello someVariable", the compiler interprets someVariable as a piece of text instead of a variable.

Solution:

"Hello " & someVariable

Or for your case:

Dim str As String
str = "=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP, " & rngCell_NoUsed.Column & ",FALSE),""NO LTCS VALUE AVAILABLE"")"
ActiveCell.FormulaR1C1 = str

You'll see that we've closed off the first part of the string by adding a ". Then, we tell the compiler to concatenate (&) with the contents of the variable. Then we add another concatenation operator, and we've also added another " to signify that we are once again inputting pure text.

The result can be thought of more simply in this way:
"text" & content_from_a_variable & "more text"

0

That works perfectly fine. I already tried to do that in one step like:

ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],tbl_LTCSREP," & _
rngCell_NoUsed.Column & ",FALSE),""NO LTCS VALUE AVAILABLE"")"

This did not work either. But I got it. Thanks again.