我試圖做類似動態設置ListFillRange在Excel中組合框。使用VBA
使用VBA
回答
好吧,不要再回答我自己的問題,但這個Excel的ComboBox的ListFillRange屬性是非常令人發狂。這是我實現的最終代碼。這裏
Sheet1.Range("E3").CurrentRegion.Select
Dim example as Range
Set example = Selection
With cmbMyBox
.ListFillRange = example.Address(0, 0, x1A1, True)
End With
麻煩的是,我試圖動態設置使用它的變化取決於被賦予什麼樣的用戶輸入值的動態範圍組合框。據我所知,我不能使用命名範圍,因爲命名範圍是固定的,例如(A3:Z20)並且無法調整。
首先,對於試圖設置VBA中的listfillrange,你需要包括「=」號,這樣的:
combobox.ListFillRange = "=E3:E13"
,而不是combobox.ListFillRange = "E3:E13"
,這將無法工作。
你可以有一個動態命名的區域,例如:
listItems: "=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))"
使用VBA這樣設置ListFillRange:combobox.ListFillRange = "=listItems"
再次使用'='
標誌!
這種動態範圍時listItems增長/收縮動態,取決於什麼樣的價值觀,你必須在列A
我知道我真的回答晚了,但我發現很多人的思維命名範圍總是要固定,而他們可以動態以及...
你是如何做到這一點? 在Excel 2007及更高版本中,您轉到功能區"Formulas"
並單擊按鈕「名稱管理器」 而不是選擇單元格並在左上角給出名稱,您可以在此處管理所有已定義的命名範圍。 創建一個新的,並給它的值(不含引號):
"=Sheet1!$A$1:INDEX(Sheet1!$A:$A;COUNTA(Sheet1!$A:$A))"
。
有你去...
P.S.當您讓動態命名範圍更改時,應該使用VBA重新設置.ListFillRange,以便組合框將刷新其列表項目。
或者,這是我要做的事:
定義,包括頭部和尾部行加一個數據行開始,說「DataList控件」
然後定義以下數據範圍名SANS範圍名稱標題和預告片記錄使用偏移量函數。
說 「DataRange」= OFFSET(DataList的,1,0,行(的DataList)-2)
這是工作的罰款在Excel 2010中:
我有一個項目在改變列「AN」的列表(得到更大/短)每星期。我創建了一個名爲「c」的變量,其中包含列表中的項目數量。通過使用這個變量,ComboBox(位於單元格S7:U7上)現在將顯示實際包含在列表中的項目(組合框中沒有空白空間或缺少項目)。
代碼:
Dim rng As Range
Set rng = ActiveSheet.Range("S7:U7")
ActiveSheet.DropDowns.Add(rng.Left, rng.Top, rng.Width, rng.Height).Select
With Selection
.ListFillRange = "AN1:AN" & c
.LinkedCell = "$V$7"
.DropDownLines = 8
.Display3DShading = False
End With
我正面臨着類似的問題,不能夠填充的ActiveX組合框與列表參考從一個細胞的驗證規則偷看。
與Firedrawndagger自己的解決方案類似,我將手動翻譯驗證規則爲.ListFillRange所理解的格式。 我也意識到,它需要處於工作簿範圍的格式,否則該調用將無法從其他工作表中工作。
這適用於所有的校驗源格式,包括:$ A $ 1/= NamedRange/= INDIRECT( 「表1 [Col2中]」) 翻譯是:如果使用建議
Dim xStr As String
xStr = Target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)
xStr = Split(Range(xStr).Address(, , , True), "]")(1)
'...other irrelevant code
.ListFillRange = xStr
- 1. 使用使用VBA
- 2. 使用VBA
- 3. 使用VBA宏
- 4. 使用VBA
- 5. 使用VBA
- 6. 使用VBA
- 7. 使用Excel VBA
- 8. 使用VBA
- 9. 使用VBA
- 10. 使用Excel VBA
- 11. 使用VBA
- 12. 使用VBA
- 13. 使用VBA
- 14. 使用VLOOKUP()使用VBA
- 15. 如何使用VBA
- 16. 如何使用VBA
- 17. 使用isnumeric與vba
- 18. 獲取使用VBA
- 19. 如何使用VBA
- 20. 如何使用VBA
- 21. 增量使用VBA
- 22. 如何使用VBA
- 23. 排序使用VBA
- 24. 使用VBA問題
- 25. 使用VBA代碼
- 26. 錯誤使用VBA
- 27. 收集使用VBA
- 28. Excel中 - 使用VBA
- 29. 選擇使用VBA
- 30. 在PST使用VBA
不會是固定上面listItems:「= Sheet1!$ A $ 1:INDEX(Sheet1!$ A:$ A; COUNTA(Sheet1!$ A:$ A))」 – David 2013-05-23 07:02:01