表单导致运行时错误-2147352571(80020005)

时间:2015-05-09 06:47:10

标签: excel vba excel-vba

我有一张表格,可以从表格中自动填写。有一个组合,其中选择了交易数量,然后有一个文本框,我想填写合作伙伴名称(在表格中搜索)。

我花了很长时间才弄清楚我的代码中出了什么问题。最后我管理了代码工作,但对我来说它看起来很神秘,并且它不干净。

原始代码:

Private Sub ComboTransaction_Change()
    Dim ws_su As Worksheet
    Set ws_su = Worksheets("Sale Unsettled")
    TextPartner = ws_su.Range("SaleUnsettled_Start").Offset(Application.WorksheetFunction.Match(Val(ComboTransaction), ws_su.Range("SaleUnsettled_Transactions"), 0), 1)
End Sub

“解决方案”:

Private Sub ComboTransaction_Change()
    Dim ws_su As Worksheet
    Set ws_su = Worksheets("Sale Unsettled")
    PartnerValue = ws_su.Range("SaleUnsettled_Start").Offset(Application.WorksheetFunction.Match(Val(ComboTransaction), ws_su.Range("SaleUnsettled_Transactions"), 0), 1)
    TextPartner = PartnerValue
End Sub

为什么我必须通过PartnerValue来做,这对我来说是一个谜。不仅困扰我,因为它弄乱了代码(还有更多的值,我必须以同样的方式填写),但我还有另一种形式(购买等),它没有这个奇怪的补丁。

如果你知道什么是错的话,我想摆脱它,我会很感激你的消息。

TextPartner和PartnerValue之间的唯一区别是TextPartner是表单中的TextBox,而PartnerValue则不是。

1 个答案:

答案 0 :(得分:0)

运行时错误表示它是类型不匹配。

尝试使用

TextPartner.Text = ws_su.Range("SaleUnsettled_Start").Offset( _
    Application.WorksheetFunction.Match(Val(ComboTransaction), _
    ws_su.Range("SaleUnsettled_Transactions"), 0), 1)