Как я выражаю, “если значение не пусто” на языке VBA?

Как я выражаю условие, "если значение не пусто" на языке VBA? Это - что-то вроде этого?

"if value is not empty then..."
Edit/Delete Message
58
задан Community 9 July 2018 в 19:34
поделиться

5 ответов

Это зависит от того, что вы хотите протестировать:

  • для строки можно использовать Если имя strName = vbNullString или IF strName = "" или Len(strName) = 0 (последнее предположительно быстрее)
  • для объекта, можно использовать Если myObject is Nothing
  • для поля набора записей, можно использовать If isnull(rs! myField)
  • для ячейки Excel, вы можете использовать If range("B3") = "" или IsEmpty(myRange)

Extended discussion available here (для Access, но большинство из них работает и для Excel).

.
31
ответ дан 24 November 2019 в 18:50
поделиться

Попробуйте следующее:

If Len(vValue & vbNullString) > 0 Then
  ' we have a non-Null and non-empty String value
  doSomething()
Else
  ' We have a Null or empty string value
  doSomethingElse()
End If
6
ответ дан 24 November 2019 в 18:50
поделиться

Предложение Алекси хорошо. Это можно также жестко закодировать, сначала создав переменную в виде Variant, а затем присвоив ее Empty. Затем выполните команду if/then для возможного ее заполнения. Если она будет заполнена, то не будет пустой, если нет, то останется пустой. Проверьте это с помощью IsEmpty.

Sub TestforEmpty()

    Dim dt As Variant
    dt = Empty

    Dim today As Date
    today = Date
    If today = Date Then
        dt = today
    End If

    If IsEmpty(dt) Then
        MsgBox "It not is today"
    Else
        MsgBox "It is today"
    End If

End Sub
0
ответ дан 24 November 2019 в 18:50
поделиться

Я не уверен, что это то, что вы ищете

if var<>"" then
           dosomething

или

if isempty(thisworkbook.sheets("sheet1").range("a1").value)= false then

функция ISEMPTY также может быть использована

.
3
ответ дан 24 November 2019 в 18:50
поделиться

Почему бы просто не использовать встроенную функцию Format()?

Dim vTest As Variant
vTest = Empty ' or vTest = null or vTest = ""

If Format(vTest) = vbNullString Then
    doSomethingWhenEmpty() 
Else
   doSomethingElse() 
End If

Format() поймает как пустые, так и нулевые варианты и преобразует их в строки. Я использую ее для таких вещей, как нулевая/пустая валидация и для проверки, был ли элемент выбран в выпадающем списке.

5
ответ дан 24 November 2019 в 18:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: