[英]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.