VBA Check if variable is empty

前端 未结 4 2046
予麋鹿
予麋鹿 2020-12-04 10:13

I have an object and within it I wanna check if some properties is set to false, like:

If (not objresult.EOF) Then
  \         


        
相关标签:
4条回答
  • 2020-12-04 10:34

    For a number, it is tricky because if a numeric cell is empty VBA will assign a default value of 0 to it, so it is hard for your VBA code to tell the difference between an entered zero and a blank numeric cell.

    The following check worked for me to see if there was an actual 0 entered into the cell:

    If CStr(rng.value) = "0" then
        'your code here'
    End If
    
    0 讨论(0)
  • 2020-12-04 10:37

    I had a similar issue with an integer that could be legitimately assigned 0 in Access VBA. None of the above solutions worked for me.

    At first I just used a boolean var and IF statement:

    Dim i as integer, bol as boolean
       If bol = false then
          i = ValueIWantToAssign
          bol = True
       End If
    

    In my case, my integer variable assignment was within a for loop and another IF statement, so I ended up using "Exit For" instead as it was more concise.

    Like so:

    Dim i as integer
    ForLoopStart
       If ConditionIsMet Then
          i = ValueIWantToAssign
       Exit For
       End If
    ForLoopEnd
    
    0 讨论(0)
  • 2020-12-04 10:39

    To check if a Variant is Null, you need to do it like:

    Isnull(myvar) = True
    

    or

    Not Isnull(myvar)
    
    0 讨论(0)
  • 2020-12-04 10:48

    How you test depends on the Property's DataType:

    | Type                                 | Test                            | Test2
    | Numeric (Long, Integer, Double etc.) | If obj.Property = 0 Then        | 
    | Boolen (True/False)                  | If Not obj.Property Then        | If obj.Property = False Then
    | Object                               | If obj.Property Is Nothing Then |
    | String                               | If obj.Property = "" Then       | If LenB(obj.Property) = 0 Then
    | Variant                              | If obj.Property = Empty Then    |
    

    You can tell the DataType by pressing F2 to launch the Object Browser and looking up the Object. Another way would be to just use the TypeName function:MsgBox TypeName(obj.Property)

    0 讨论(0)
提交回复
热议问题