窗体原因运行时错误-2147352571(80020005)

我有一个从表格中自动部分填写的表格。 有一个组合,在那里select交易的数量,然后有一个文本框,我想填写合作伙伴的名字(在工作表中search)。

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

原代码:

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 

解决scheme”:

 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来实现,这对我来说是个谜。 不仅困扰我,因为它弄乱了代码(有更多的价值,我必须以同样的方式填写),但我也有另一种forms(购买等),它没有这个奇怪的补丁工作。

如果有的话,我想摆脱,如果你有什么想法是错的,我会感激你的信息。

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

运行时错误意味着它是一个types不匹配。

尝试使用

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