使用vba中的每一行时输入不匹配

时间:2018-04-23 10:54:34

标签: vba

我尝试编写例程来将工作表SR上的范围中的记录添加到表单上的列表框中。我希望列表框中的记录由每行中几个单元格的值组成。

我在ResultString行上遇到类型不匹配。我确定这很简单,但我没看到我写的内容与通常的建议有什么不同。

提前致谢!

With SR
    LastRow = .Cells(.Rows.count, "A").End(xlUp).Row
End With

Dim Rng As Range
Dim Row As Range
Dim ResultString As String

Set Rng = Range("A2:AC" & LastRow)

For Each Row In Rng.Rows
    With SR
        ResultString = .Cells(Row, 1).Value & " - " & .Cells(Row, 2).Value & " - " & .Cells(Row, 3).Value & " - " & .Cells(Row, 9).Value & " - " & .Cells(Row, 25).Value
    End With
    Me.lstResults.AddItem ResultString
Next Row

1 个答案:

答案 0 :(得分:1)

我建议你采用不同的方法:

Dim SR As Worksheet
Set SR = ActiveSheet

Dim LastRow As Long
With SR
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With

With Me.lstResults
    .ColumnCount = 25
    .ColumnWidths = "20;20;20;0;0;0;0;0;20;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;20" ' adjust it to suit your needs
    .List = SR.Range("A2:AC" & LastRow).Value
End With

通过这种方式,您不需要迭代每一行并加入相关列内容,同时使用所有范围值一次性填充列表框,并且仅显示相关列

通过这种方式你松开" - "分隔符,但可能是你可以绕过它