我基本上需要sheet ComboBox在打開作業簿時列出一個。
如果我使用變數而不是作業表名稱,則會出現此錯誤:
編譯錯誤:找不到方法或資料成員
Private Sub Workbook_Open()
ThisWorkbook.Sheets(2).Activate
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets(2)
sh.ComboBox1.List = sh.Range("D3:D10").Value 'this cause Compile error
ThisWorkbook.Sheets(2).ComboBox1.List = sh.Range("D3:D10").Value 'this works correctly
End Sub
那么,如何使用變數sh而不是明確的作業表名稱?
uj5u.com熱心網友回復:
要么將其宣告為Object- 因為 Worksheet 類沒有Combobox1屬性,或者使用作業表代號 - 例如Dim sh as Sheet2。
Dim sh As Object
Set sh = ThisWorkbook.Sheets(2)
sh.ComboBox1.List = sh.Range("D3:D10").Value
或者:
Dim sh As Sheet2
Set sh = ThisWorkbook.Sheets(2)
sh.ComboBox1.List = sh.Range("D3:D10").Value
或者,將其保留為Worksheet變數并使用其OLEObjects屬性按名稱參考控制元件:
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets(2)
sh.OLEObjects("ComboBox1").Object.List = sh.Range("D3:D10").Value
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534675.html
標籤:擅长VBA组合框
上一篇:根據用戶輸入隱藏列
