【发布时间】:2021-08-31 11:17:24
【问题描述】:
更新和编辑
我对这个世界很陌生,但这是我的问题: 当用户窗体初始化时,下面的代码将过滤器应用于我的“干净导入”,将 a 列复制到临时表中,这是列表框用来填充自身的。
Set ws = ThisWorkbook.Worksheets("Clean_Import")
ws.Activate
On Error Resume Next
ws.ShowAllData
On Error GoTo 0
ws.Range("A1:K1000").AutoFilter Field:=5, Criteria1:="<1"
Range("A:A").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("TempSheet").Select
Columns("A:A").Select
Range("A2").Activate
ActiveSheet.Paste
ODList1.List = Sheets("TempSheet").Range("A2:A100").Value
End Sub
从那时起,只需双击列表框即可查找所选项目并将一些数据放入文本框中。
With Me.ODList1
For i = 0 To .ListCount - 1
If .Selected(i) Then
TextBox11.Value = Application.VLookup(.List(i, 0), Sheet3.Range("A1:K100"), 3)
TextBox12.Value = Format(Application.VLookup(.List(i, 0), Sheet3.Range("A1:K100"), 7), "dd / mm / yyyy")
TextBox13.Value = Application.VLookup(.List(i, 0), Sheet3.Range("A1:K100"), 10)
Exit For
End If
Next
End With
此代码适用于除我的一种情况之外的所有情况。我现在意识到,如果我在“干净导入”中选择恰好是范围中的第一行或范围中的最后一行的列表框项目,那么我会收到以下错误。
运行时错误“-2147352571 (80020005)”:无法设置值 财产。类型不匹配。
我唯一能想到的是值不匹配,但这似乎不可能,因为列表框是从它正在查看的范围的直接副本中填充的
我期待听到你的想法,
干杯,
比尔
【问题讨论】:
标签: excel vba listbox vlookup userform