繁体   English   中英

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

[英]Excel VBA Change userform rowsource to worksheet listfillrange

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

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

Län2=组合框3 Kommun2 =组合框4

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在工作表中而不是在用户窗体中给我依赖的组合框。 ??

可以使用行源设置数据源。 通过简单地用下划线替换空格,可以用更少的行来实现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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM