Type Mismatch VBA

2025年3月17日 | 阅读 3 分钟

当我们尝试在两种不同的变量类型之间赋值时,会发生错误,这称为 VBA 类型不匹配错误。

此错误发生在运行时,例如“运行时错误 13:类型不匹配”。

例如: 如果我们为整型数据类型变量提供文本值,则在代码执行期间会发生类型不匹配错误。

我们在代码中声明变量并为其分配数据类型。我们需要记住在向这些变量提供值时,它们保存什么类型的数据。如果提供的值不符合数据类型要求,则会抛出“运行时错误 13:类型不匹配”错误。

VBA 类型不匹配的优点

以下是类型不匹配错误的一些优点,例如

  • 我们知道错误发生在代码中的实际位置。
  • 无需编译代码,我们就可以获得代码中的错误点。

示例

以下是显示类型不匹配错误的一些步骤。现在,按照以下步骤操作,例如

步骤 1:单击开发工具选项卡。

步骤 2: 并单击 Visual Basic 选项。

步骤 3: 然后单击弹出窗口上的 插入 按钮。

步骤 4: 现在插入一个新的 模块

Type Mismatch VBA

步骤 5: 双击新添加的 模块;它会打开一个代码窗口。

步骤 6: 在代码窗口上编写 VBA 代码。

Type Mismatch VBA

步骤 7: 接下来,将变量“X”定义为 Integer 数据类型。

Type Mismatch VBA

步骤 8: Integer 数据类型只能存储数字和整数。但是我们为 X 变量分配了文本值。

Type Mismatch VBA

步骤 9: 我们使用消息框来查看 X 变量中存储的值。

Type Mismatch VBA

步骤 10: 通过单击 运行 按钮来执行上述代码。

Type Mismatch VBA

执行后,它显示错误消息“运行时错误 '13':类型不匹配”。整型数据类型只能存储数字或整数,但我们为整型数据类型分配了文本值。这就是它出错的原因。

如果我们为变量分配正确的值,我们将获得正确的输出,如下所示

Type Mismatch VBA

现在执行上述代码,它将给出正确的输出,而不会显示任何错误。

Type Mismatch VBA

示例 2: 这是另一个具有不同数据类型的示例,例如

我们将变量“A”定义为布尔值。布尔数据类型只能保存 True 或 False 值。

Type Mismatch VBA

我们分配值 100,但这不符合数据类型值。

现在通过单击 运行 按钮来执行上述代码。

Type Mismatch VBA

执行上述代码后,它不会显示任何错误消息,因为 excel 将所有数字都视为 True,除了零,零被视为 False。

如果我们将文本值与数值相加,则会显示错误,例如

Type Mismatch VBA

再次执行相同的代码,现在它将显示错误,如下面的屏幕截图所示,例如

Type Mismatch VBA
下一主题Excel VBA 对象