为什么会收到“运行时错误'13':类型不匹配”错误消息?

时间:2019-11-29 11:04:19

标签: excel vba runtime-error

我对VBA非常陌生,仍然在学习编程语言和编码。在参考了一些在线教程和线程之后,我为我的项目想出了以下代码。当我运行代码时,我收到一条错误消息,指出“运行时错误:类型不匹配。”如果有专家可以帮助我找到错误,将不胜感激。

非常感谢

Dim wsServiceRegistry As Worksheet, wsInhouseMaterialInventory As Worksheet
Dim updateCell As Range
Dim emptyRow As Long

With ThisWorkbook
    Set wsServiceRegistry = .Worksheets("Service Registry")
    Set wsInhouseMaterialInventory = .Worksheets("Inhouse Material Inventory")
End With

Set updateCell = wsInhouseMaterialInventory.Cells(Me.InhouseMaterialComboBox.ListIndex + 2, 4)
updateCell.Value = updateCell.Value - Val(Me.MaterialQuantityTextBox.Value)


If updateCell.Value < 1 Then updateCell.EntireRow.Delete: Exit Sub

1 个答案:

答案 0 :(得分:0)

唯一导致类型不匹配的行是
updateCell.Value = updateCell.Value - Val(Me.MaterialQuantityTextBox.Value) ,具体取决于单元格包含的内容。

首先要了解的是它是否是您真正想要的单元格,并且是否包含您期望的单元格。将这些行添加到相关行的上方:

Debug.Print updateCell.Address
Debug.Print updateCell.Value

Ctrl + G 显示调试输出并运行它。如果输出符合您的期望,则必须再次使用Val函数,如下所示:

updateCell.Value = Val(updateCell.Value) - Val(Me.MaterialQuantityTextBox.Value)

强迫updateCell成为可以减去的东西。