VBA/Excel/Access/Word/Data Type/Variant

Материал из VB Эксперт
Перейти к: навигация, поиск

Add Variant integer in string to another Variant integer in string

   <source lang="vb">

Sub dimDemo()

   Dim varAnyThing As Variant
   varAnyThing = "31"
   varAnyThing = varAnyThing + "10"

End Sub

</source>
   
  


Add Variant integer to Variant string

   <source lang="vb">

Sub asVar()

   Dim varAnyThing As Variant
   varAnyThing = 31
   varAnyThing = varAnyThing & " is half of 62"

End Sub

</source>
   
  


Add Variant string to Variant integer

   <source lang="vb">

Sub variantDemo()

   Dim varAnyThing As Variant
   varAnyThing = "31"
   varAnyThing = varAnyThing + 10

End Sub

</source>
   
  


Assign difference type variable to Variant variable

   <source lang="vb">

Sub var()

   Dim varAnyThing As Variant
   varAnyThing = 31
   varAnyThing = "Any old thing"

End Sub

</source>
   
  


A Variant allows VBA to make its own decision as to what type of data it is holding

   <source lang="vb">

Sub varSun()

   Dim varMyData As Variant
   varMyData = "This is a Variant"
   Debug.Print varMyData
   varMyData = 12
   Debug.Print varMyData

End Sub

</source>
   
  


A Variant allows VBA to make its own decision as to what type of data it is holding: string and integer

   <source lang="vb">

Sub var()

   Dim varMyData as Variant
   varMyData = "This is a Variant"
   varMyData = 12

End Sub

</source>
   
  


Determining the Type of a Variant

   <source lang="vb">

Value Variant type 0 Empty (unitialized) 1 Null (no valid data) 2 Integer 3 Long Integer 4 Single 5 Double 6 Currency 7 Date 8 String 9 Object 10 Error value 11 Boolean 12 Variant (only used with arrays of variants) 13 Data access object 14 Decimal value 17 Byte 36 User Defined Type 8192 Array Sub VariantExample()

   Dim varAnyThing As Variant
   
   varAnyThing = 12.345
   Debug.Print VarType(varAnyThing)
   
   varAnyThing = 12.345
   varAnyThing = varAnyThing & " is a number"
   Debug.Print VarType(varAnyThing)
    
    varAnyThing = 12.345
    varAnyThing = varAnyThing + "10"
    Debug.Print VarType(varAnyThing)
    
    varAnyThing = 12345
    Debug.Print VarType(varAnyThing)
    
    varAnyThing = 123456
    Debug.Print VarType(varAnyThing)

End Sub

</source>
   
  


Get the variable type for Variant

   <source lang="vb">

Sub VariantExample()

   Dim varAnyThing     As Variant
   varAnyThing = 12.345
   Debug.Print VarType(varAnyThing)
   
   varAnyThing = 12.345
   varAnyThing = varAnyThing & " is a number"
   Debug.Print VarType(varAnyThing)
   
   varAnyThing = 12.345
   varAnyThing = varAnyThing + "10"
   Debug.Print VarType(varAnyThing)
   
   varAnyThing = 12345
   Debug.Print VarType(varAnyThing)
   
   varAnyThing = 123456
   Debug.Print VarType(varAnyThing)

End Sub

</source>
   
  


If you simply declare a variable with a Dim statement and leave off the type-declaration keyword or character, the variable is a variant

   <source lang="vb">

Sub var()

   Dim myVar

End Sub

</source>
   
  


One of the few instances in which you have no choice for using a Variant:

   <source lang="vb">

Sub fewInstance()

   Dim varArray As Variant
   varArray = Array("Element1", 2, "Another string")

End Sub

</source>
   
  


Variant string

   <source lang="vb">

Sub VariantStringTest()

   Dim varFirstName    As Variant
   Dim varLastName     As Variant
   Dim varFullName     As Variant
   varFirstName = "Janine"
   varLastName = Null
   varFullName = varFirstName + varLastName
   Debug.Print varFullName

End Sub

</source>