Type mismatch on: <name>
The following conditions could have caused this error.
- You tried to pass an argument to a sub or function by reference,
but the data types of the argument and the corresponding parameter
do not match.
Pass the argument by value or pass an argument of the correct data type.
- You tried to pass an array, a list, or an object reference to
a function or sub, but the corresponding parameter is not defined
as one of these or as a Variant.
Pass an argument of the correct kind.
- You tried to pass a scalar value to a function or sub, but the
corresponding parameter is defined as an array, a list, or an object
reference variable.
Pass an argument of the correct kind.
- You tried to assign an instance of a user-defined data type to a
Variant. For example:
Type myType A As Integer End Type Dim typeInst As myType Dim varV As Variant varV = typeInst ' Illegal
This is not allowed. Remove the assignment statement.
- You used a Set statement
to try to assign a value other than an object reference to an object
reference variable (or a Variant holding an object reference). For
example:
Class MyClass ' ... End Class Dim X As New MyClass Dim N As Integer N% = 5 Set X = N% ' Illegal
This is not allowed. Remove the assignment statement.
- You used a Set statement
to try to assign an object reference to something other than an object
reference variable or a Variant. For example:
Class MyClass ' ... End Class Dim X As New MyClass Dim N As Integer Set N% = X ' Illegal
This is not allowed. Remove the assignment statement.
- You used a Set statement
to try to assign an object reference variable of one class to an object
reference variable of another class. You can only do this when the
variables designate instances of the same class or when the target
variable designates a base class and the variable whose value is being
assigned designates a derived class from that base. For example:
Class MyClass ' ... End Class Class BaseClass ' ... End Class Class DerivedClass As BaseClass ' ... End Class Dim A As New MyClass Dim B As New BaseClass Dim D As New DerivedClass Set B = A ' Illegal Set D = B ' Illegal Set B = D ' Legal
Remove or revise the assignment.
- You used a Set or Set...New statement to try to
create an object (class instance) and assign a reference to it to
a variable that is not an object reference variable or a Variant.
Class MyClass ' ... End Class Dim X As New MyClass Dim N As Integer Set N% = New MyClass ' Illegal
Remove or revise the assignment.
- You used a Set or Set...Bind statement in which the target variable is not an object reference variable or a Variant holding an object reference.
- You used a With statement whose target is not an object reference variable or a Variant containing an object reference. The With statement can only be used to operate on objects.
- A ReDim statement
contains a data type that does not match the data type in the declaration
of the array, or the data type in a previous ReDim statement whose
target was that array.
Change the data type in the ReDim statement so that it matches the data type of the declaration or previous ReDim statement whose target was that array, or remove the data type from the ReDim statement--once you specify a data type for a dynamic array, it is not necessary to specify the data type again in subsequent ReDim statements.
- You used a variable declared as a non-numeric data type as the
count variable in a For statement.
Replace the count variable with a variable of the appropriate numeric type.