[英]Using worksheet variable instead of explicit sheet name ,throw “Compile error: Method or data member not found”
打开工作簿时,我基本上需要列出一张工作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
而不是显式工作表名称?
要么将其声明为Object
- 因为工作表 class 没有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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.