這應該幫助你,無論是放置這些在標準模塊(例如,模塊1)。
Sub DropDown1_Change()
Dim ddFillRange As String
If Sheet1.Range("A1") = 1 Then
ddFillRange = "Sheet1!A1:A50"
ElseIf Sheet1.Range("A1") = 2 Then
ddFillRange = "Sheet2!A1:A50"
ElseIf Sheet1.Range("A1") = 3 Then
ddFillRange = "Sheet3!A1:A50"
End If
Sheet1.Shapes("Drop Down 1").ControlFormat.ListFillRange = ddFillRange
End Sub
如果你想使用命名範圍,你可以使用:
Sub DropDown1_Change()
Dim ddFillRange As String
If Sheet1.Range("A1") = 1 Then
ddFillRange = Range("NamedRange1").Name
ElseIf Sheet1.Range("A1") = 2 Then
ddFillRange = Range("NamedRange2").Name
ElseIf Sheet1.Range("A1") = 3 Then
ddFillRange = Range("NamedRange3").Name
End If
Sheet1.Shapes("Drop Down 1").ControlFormat.ListFillRange = ddFillRange
End Sub
然後,讓這些火在單元格A1改變,你將需要放置在Sheet1的模塊以下(當你右+單擊工作表Sheet1在VBA編輯器窗口中,選擇視圖代碼...見下圖):
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("A1")) Is Nothing Then DropDown1_Change
End Sub
如何選擇我想要添加到具有命名範圍的組合框的數據範圍? – 2014-12-04 09:08:46
@DhimasAFanji我更新了我的答案,包括命名範圍方法。 – JasonAizkalns 2014-12-04 13:27:07
這個運行,但是當單元格A1更改列表不會改變,除非我必須先點擊, – 2014-12-05 11:57:58