Создать формулу IF в ячейке с VBA, где результат может быть пустым - PullRequest
0 голосов
/ 07 декабря 2018

Я пытаюсь заполнить ячейку, чтобы сказать = if (d5> 0, D5 * 1.05, ""), но я не могу понять, как заполнить пустую часть утверждения пустым.

blank = ""
For i = 5 To 44
    Range("G" & i).Formula = "=V" & i
    Range("E" & i).Formula = "=IF(D" & i & ">0,D" & i & "*1.05," & blank & " )"
Next

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Как упоминалось другими авторами, удвоение двойной кавычки при построении строки приведет к появлению одного символа двойной кавычки.Поскольку вам нужно 2 последовательных двойных кавычки в части "else" вашего IF, введите их 4.

Я хотел бы отметить, что вам не нужно зацикливатьсястроки чтобы выполнить то, что вы делаете.Вы можете установить свойство Formula для диапазона, построив формулу так, как она должна отображаться в верхней левой ячейке диапазона, и она будет распространяться автоматически:

Option Explicit

Public Sub DoTheFormulaThing()
    Range("G5:G44").Formula = "=V5"
    Range("E5:E44").Formula = "=IF(D5>0,D5*1.05,"""")"
End Sub

При необходимости просто поместите $ вправильные места для абсолютных ссылок.

0 голосов
/ 07 декабря 2018

Или используйте двойные кавычки напрямую ...

For i = 5 To 44
    Range("G" & i).Formula = "=V" & i
    Range("E" & i).Formula = "=IF(D" & i & ">0,D" & i & "*1.05,"""")"
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...