VBA это просто функция - PullRequest
       9

VBA это просто функция

0 голосов
/ 26 апреля 2018

enter image description here Есть ли в VBA функция, которая работает аналогично isnull в SQL?

EG A1 - пустая ячейка, B1 = Apple,C1 = Orange.

Например:

i) D1 = isnull (A1,B1) Целевой результат: D1 = Apple

ii) D1= isnull (B1,C1) Целевой результат: D1 = Apple

1 Ответ

0 голосов
/ 26 апреля 2018

в VBA вы можете использовать функцию IsEmpty():

Range("D1").Value = IIf(IsEmpty(Range("A1")), Range("B1").Value, Range("A1").Value)

, чтобы вы могли создать UDF, например

Function MyIsNull(rng1 As Range, rng2 As Range) As Variant
    MyIsNull = IIf(IsEmpty(rng1), rng2.Value, rng1.Value)
End Function

, и вызывать его в своих ячейках, например:

i) =MyIsNull(A1,B1)

ii) =MyIsNull(B1,C1)

примечание: я использовал "MyIsNull" в качестве имени UDF, поскольку IsNull - это имя уже существующей функции VBA, и долженВы называете свой UDF после «IsNull», тогда он будет скрывать его


Хотя если вы хотите использовать встроенные функции Excel, вы можете использовать ISBLANK() и ввести в свои ячейки:

i) =IF(ISBLANK(A1),B1,A1) ii) =IF(ISBLANK(B1),C1,B1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...