从筛选的列表中选择组合框

问题描述 投票:0回答:1

我尝试了一段时间,想找到(搜索)解决这个问题的方法,但似乎不能。

我试图从一个excel文档中读取一个列表,并根据 "国家 "项(在另一个组合框中选择)过滤列表。如果是正确的国家,我想将该行(4个项目)添加到组合框行中。

我不能使用数组,因为长度会随着国家的不同而改变,而且由于只有数组的第二个维度可以是动态的,所以它会向后填充列表。

目前我得到了这个错误。

不允许分配给常量。

代码。

Private Sub P_Country_Change()

    Dim LastR As Integer

    LastR = ActiveWorkbook.Worksheets("M_DB").Range("A2", Worksheets("M_DB").Range("A2").End(xlDown)).Rows.Count

    Dim j As Integer
    j = 0

        For i = 2 To LastR
            If ActiveWorkbook.Worksheets("M_DB").Range("E" & i).Value = P_Country.Value Then

            With Press_m
                .AddItem = ActiveWorkbook.Worksheets("M_DB").Range("A" & i).Value
                .List(j, 1) = ActiveWorkbook.Worksheets("M_DB").Range("B" & i).Value 
                .List(j, 2) = ActiveWorkbook.Worksheets("M_DB").Range("C" & i).Value 
                .List(j, 3) = ActiveWorkbook.Worksheets("M_DB").Range("D" & i).Value 
            End With

                j = j + 1

            End If
        Next i

End Sub

谢谢你的帮助!

excel vba
1个回答
0
投票

好吧,我让它工作了。我不确定我到底做对了什么,但是为了帮助其他使用这个作为参考的人,我做了一件事,可能是把组合框的属性设置为。

locked = False

我还修改了一点代码,但不是很明显,现在是这样的。

Private Sub P_Country_Change()

Dim LastR As Integer

LastR = ActiveWorkbook.Worksheets("M_DB").Range("A2", Worksheets("M_DB").Range("A2").End(xlDown)).Rows.Count

Dim j As Integer
j = 0

For s = P_m.ListCount - 1 To 0 Step -1
    P_m.RemoveItem s
Next s

With P_m
    .ColumnCount = 4
    .ColumnWidths = "125;125;125;125"
    .ColumnHeads = False
End With

    For i = 2 To LastR
        If ActiveWorkbook.Worksheets("M_DB").Range("E" & i).Value = Press_Country.Value Then

            P_m.AddItem ActiveWorkbook.Worksheets("M_DB").Range("B" & i).Value ' Name
            P_m.List(j, 1) = ActiveWorkbook.Worksheets("M_DB").Range("C" & i).Value ' Corporation
            P_m.List(j, 2) = ActiveWorkbook.Worksheets("M_DB").Range("D" & i).Value ' Province
            P_m.List(j, 3) = ActiveWorkbook.Worksheets("M_DB").Range("E" & i).Value ' City

            j = j + 1

        End If
    Next i

结束子

最后是: 我在这里找到了一个很好的参照物。 教我吧?RTFM先;-)

© www.soinside.com 2019 - 2024. All rights reserved.