You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改多列ListBox搜索代码触发Run-Time Error 380/381求助

解决ListBox适配11列时的运行时错误380/381问题

错误核心原因

这两个错误的根源是ListBox控件的ColumnCount属性未设置为11,同时原代码添加行的逻辑错误:每列执行一次.AddItem导致ListBox行结构混乱,无法正确访问多列数据。

解决步骤

  1. 调整ListBox控件属性
    打开窗体设计视图,选中ListBox2,在属性窗口找到ColumnCount,将值改为11;可按需设置ColumnWidths(例如50;50;...,共11个数值用分号分隔)。

  2. 修正VBA代码逻辑
    每行仅执行一次.AddItem,再填充所有列,避免行结构混乱:

Private Sub TextBox2_AfterUpdate()
    Dim ColHead As Integer, ListRow As Integer, ShRow As Integer, LastRow As Long
    Dim FindVal As Variant
    Dim MatchFound As Boolean

    With Me.ListBox2
        .Clear
        ' 添加表头:先新增一行,再填充11列数据
        .AddItem
        For ColHead = 1 To 11
            .List(0, ColHead - 1) = Sheet2.Cells(1, ColHead).Value
        Next ColHead

        ListRow = 1
        ' 处理搜索值格式
        If IsDate(Me.TextBox2.Value) Then
            FindVal = CDate(Me.TextBox2.Value)
        ElseIf IsNumeric(Me.TextBox2.Value) Then
            FindVal = Val(Me.TextBox2.Value)
        Else
            FindVal = "*" & Me.TextBox2.Value & "*"
        End If

        LastRow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row
        ' 遍历工作表数据行
        For ShRow = 2 To LastRow
            MatchFound = False
            ' 逐列判断当前行是否存在匹配值
            For ColHead = 1 To 11
                If Sheet2.Cells(ShRow, ColHead).Value Like FindVal Then
                    MatchFound = True
                    Exit For
                End If
            Next ColHead

            If MatchFound Then
                ' 新增一行后填充11列数据
                .AddItem
                For ColHead = 1 To 11
                    .List(ListRow, ColHead - 1) = Sheet2.Cells(ShRow, ColHead).Value
                Next ColHead
                ListRow = ListRow + 1
            End If
        Next ShRow
    End With
End Sub

补充说明

  • 原代码用CountIf判断整行匹配易出现误判(如空白单元格、数据类型不兼容),改为逐列判断更精准。
  • 确认Sheet2为目标工作表名称,若实际名称不同需对应修改。

内容的提问来源于stack exchange,提问作者arifnkhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 08:50:25