首页 > 解决方案 > VBA 表单 vlookup 类型不匹配

问题描述

我试图在表单中使用 vlookup 来查找表中文本框的值,并将结果放入第二个文本框中。简化的代码如下所示:

Private Sub CommandButton1_Click()

Dim carbon As Variant
    carbon = TextBox1.Value
Dim ih As Variant

With ThisWorkbook.Worksheets("initial hardness")
    ih = Application.VLookup(carbon, Worksheets("initial hardness").Range("A4:B64"), 2, False)
    TextBox2.Value = ih
End With

End Sub

表格样本:

0,19  44,0
0,20  44,0
0,21  45,0
0,22  45,0
0,23  46,0

当我在 tb1 中键入 0,22 时,我收到运行时错误“-2147352571 (800200005)”:无法设置值属性。当我将第一列中的 fomrat 更改为 0.22 并在文本框中键入 0.22 时,该表单似乎正在工作,但这不是我要找的。

谁能帮我?

标签: excelvbaformstextboxvlookup

解决方案


首先,代码中的“With”块是必要的。这样你就可以抹掉了。。

关于您的问题,目前还不是 100% 清楚您所做的更改。因为,问题可能不同,您可以使用逗号“,”或点“。”的区域设置。用于小数分隔,否则单元格格式(文本或数字格式)可能有问题

我建议避免在代码中使用 VLOOKUP 并尝试对问题使用不同的方法。

如果您仍想使用 VLOOKUP,“Application.VLookup”将不适用于所有 Excel 版本。如果您要在不同的计算机上使用它,我建议使用“Application.WorksheetFunction.VLookup”。


推荐阅读