Excel VBA将用户窗体行源更改为工作表listfillrange

时间:2018-08-17 11:42:20

标签: excel vba combobox

我有一个带有6个Activex组合框的用户窗体。

我有以下代码来填充4个activex组合框,以使combobox 2和combobox 4依赖于combobox 1和combobox3。Combobox1和combobox 3使用范围作为行源。

Län2=组合框3 Kommun2 = Combobox4

Private Sub Län2_Change()
Me.Kommun2 = ""
Select Case Me.Län2
    Case "Stockholms län"
        Me.Kommun2.RowSource = "Stockholms_län"

    Case "Västra götalands län"
        Me.Kommun2.RowSource = "Västra_götalands_län"

    Case "Skåne län"
        Me.Kommun2.RowSource = "Skåne_län"

    Case "Uppsala län"
        Me.Kommun2.RowSource = "Uppsala_län"

    Case "Södermanlands län"
        Me.Kommun2.RowSource = "Södermanlands_län"

    Case "Östergötlands län"
        Me.Kommun2.RowSource = "Östergötlands_län"

    Case "Jönköpings län"
        Me.Kommun2.RowSource = "Jönköpings_län"

    Case "Kronobergs län"
        Me.Kommun2.RowSource = "Kronobergs_län"

    Case "Kalmar län"
        Me.Kommun2.RowSource = "Kalmar_län"

    Case "Gotlands län"
        Me.Kommun2.RowSource = "Gotlands_län"

    Case "Blekinge län"
        Me.Kommun2.RowSource = "Blekinge_län"

    Case "Hallands län"
        Me.Kommun2.RowSource = "Hallands_län"

    Case "Värmlands län"
        Me.Kommun2.RowSource = "Värmlands_län"

    Case "Örebro län"
        Me.Kommun2.RowSource = "Örebro_län"

    Case "Västmanlands län"
        Me.Kommun2.RowSource = "Västmanlands_län"

    Case "Dalarnas län"
        Me.Kommun2.RowSource = "Dalarnas_län"

    Case "Gävleborgs län"
        Me.Kommun2.RowSource = "Gävleborgs_län"

    Case "Västernorrlands län"
        Me.Kommun2.RowSource = "Västernorrlands_län"

    Case "Jämtlands län"
        Me.Kommun2.RowSource = "Jämtlands_län"

    Case "Västerbottens län"
        Me.Kommun2.RowSource = "Västerbottens_län"

    Case "Norrbottens län"
        Me.Kommun2.RowSource = "Norrbottens_län"

End Select
End Sub

我想更改此代码以在带有listfillrange的工作表中使用。

但是,我的代码不起作用。

Private Sub Län1_Change()
    Dim Stockholm As String, Skåne As String

    Stockholm = "Sheet2!B1:B3"
    Skåne = "Sheet2!C1:C3"

    Select Case Me.Län1.Value
        Case "Stockholms län": Me.Kommun1.ListFillRange = Stockholm
        Case "Skåne län": Me.Kommun1.ListFillRange = Skåne

    End Select

End Sub

如何使用ListFillRange在工作表中而不是在用户表单中为我提供依赖的组合框。 ??

1 个答案:

答案 0 :(得分:0)

可以使用Rowsource设置数据源。通过简单地用下划线替换空格,可以用更少的行来实现Län2_Change方法。参见下面的代码。

Private Sub Län2_Change()
    Me.Kommun2.RowSource = Replace(Me.Län2, " ", "_")
End Sub

Private Sub Län1_Change()
    Dim Stockholm As String, Skåne As String

    Stockholm = "Sheet2!B1:B3"
    Skåne = "Sheet2!C1:C3"

    Select Case Me.Län1.Value
        Case "Stockholms län": Me.Kommun1.Rowsource = Stockholm
        Case "Skåne län": Me.Kommun1.ListFillRange = Skåne
    End Select
End Sub