comment exprimer le terme si x est un entier en langage VBA? Je veux écrire un code qui fait quelque chose si x est un entier et fait autre chose si ce n'est pas avec vba Excel.
Sub dim()
Dim x is Variant
'if x is integer Then
'Else:
End Sub
If IsNumeric(x) Then 'it will check if x is a number
Si vous souhaitez vérifier le type, vous pouvez utiliser
If TypeName(x) = "Integer" Then
Cela peut convenir:
If x = Int(x) Then
Cela dépend si vous voulez dire le type de données "Integer", ou Integer dans le sens de: "Un nombre sans décimal". Si vous vouliez dire ce dernier, alors un test manuel rapide suffira (voir le premier exemple); si vous vouliez dire le premier, il existe trois façons d'examiner les types de données, toutes avec divers avantages et inconvénients:
Public Sub ExampleManual()
Dim d As Double
d = 1
If Fix(d) = d Then
MsgBox "Integer"
End If
End Sub
Public Sub ExampleTypeName()
Dim x As Integer
MsgBox TypeName(x)
End Sub
Public Sub ExampleTypeOf()
Dim x As Excel.Range
Set x = Selection
''//Using TypeOf on Objects set to Nothing will throw an error.
If Not x Is Nothing Then
If TypeOf x Is Excel.Range Then
MsgBox "Range"
End If
End If
End Sub
Public Sub ExampleVarType()
Dim x As Variant
''//These are all different types:
x = "1"
x = 1
x = 1&
x = 1#
Select Case VarType(x)
Case vbEmpty
Case vbNull
Case vbInteger
Case vbLong
Case vbSingle
Case vbDouble
Case vbCurrency
Case vbDate
Case vbString
Case vbObject
Case vbError
Case vbBoolean
Case vbVariant
Case vbDataObject
Case vbDecimal
Case vbByte
Case vbUserDefinedType
Case vbArray
Case Else
End Select
End Sub