【问题标题】:VBA Listbox & LookupVBA 列表框和查找
【发布时间】: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


    【解决方案1】:

    发生这种情况是因为 Vlookup 无法找到匹配项。这是重现错误的简单方法

    Private Sub CommandButton1_Click()
        TextBox1.Value = Application.VLookup("Sid", Sheet1.Range("A1:K100"), 3)
    End Sub
    

    要处理这个问题,您需要引入正确的错误处理。这是一个例子

    Dim Ret As Variant
    Ret = Application.VLookup("Sid", Sheet1.Range("A1:K100"), 3)
    
    If IsError(Ret) Then
        TextBox1.Value = "Error"
    Else
        TextBox1.Value = Ret
    End If
    

    【讨论】:

    • 我已经编辑了我的查询,以更详细地解释后台的工作原理。谢谢你回复我,但据我所知,文本是 100% 相同的(它实际上是从查找范围复制的)
    【解决方案2】:

    我对导入数据的方式做了一些小的调整,问题就消失了。

    不确定问题出在哪里。但它又悄悄回来了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      相关资源
      最近更新 更多