我有一张表格,可以从表格中自动填写。有一个组合,其中选择了交易数量,然后有一个文本框,我想填写合作伙伴名称(在表格中搜索)。
我花了很长时间才弄清楚我的代码中出了什么问题。最后我管理了代码工作,但对我来说它看起来很神秘,并且它不干净。
原始代码:
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则不是。
答案 0 :(得分:0)
运行时错误表示它是类型不匹配。
尝试使用
TextPartner.Text = ws_su.Range("SaleUnsettled_Start").Offset( _
Application.WorksheetFunction.Match(Val(ComboTransaction), _
ws_su.Range("SaleUnsettled_Transactions"), 0), 1)