列表框为空时类型不匹配

Type mismatch when list box is empty

我有一些代码可以完美地提交表单中包含数据的三个列表框的内容,但是当列表框为空时,我会收到类型不匹配错误。

For i = LBound(Me.PartNoList.List) To UBound(Me.PartNoList.List)
        parts = parts & IIf(parts = "", "", vbNewLine) & Me.PartNoList.List(i, 0)
            Next

              With Sheets("Sales Order Log").Range("Sales_Data_Start")
                .Offset(TargetRow, 1).Value = SalesOrderNo
                    ' (...)
                        .Offset(TargetRow, 5).Value = parts
                            End With

    For i = LBound(Me.PartDescList.List) To UBound(Me.PartDescList.List)
        descparts = descparts & IIf(descparts = "", "", vbNewLine) & Me.PartDescList.List(i, 0)
                Next

                With Sheets("Sales Order Log").Range("Sales_Data_Start")
                    .Offset(TargetRow, 1).Value = SalesOrderNo
                        ' (...)
                            .Offset(TargetRow, 6).Value = descparts
                                End With

    For i = LBound(Me.PartQntList.List) To UBound(Me.PartQntList.List)
        qntparts = qntparts & IIf(qntparts = "", "", vbNewLine) & Me.PartQntList.List(i, 0)
            Next

                With Sheets("Sales Order Log").Range("Sales_Data_Start")
                    .Offset(TargetRow, 1).Value = SalesOrderNo
                        ' (...)
                            .Offset(TargetRow, 7).Value = qntparts
                                End With

如果能帮助诊断发生这种情况的原因,我们将不胜感激。

您需要在引用内容之前检查每个列表框是否为空,例如

If Me.PartNoList.ListIndex <> -1 Then

在错误消息中按 End 会停止 运行ning 中的其余代码,因此发布该数据时发生了其他事情,或者它是前一个 运行[= 遗留下来的11=]