如何从 MS-Access read/set Excel 文本框 属性 VBA
How to read/set Excel Textbox property from MS-Access VBA
我在 Excel 工作表 (.xlsx) 中有一个简单的文本框,我可以在其中读取 Excel VBA 子中的背景颜色 属性 :
Debug.Print TextBox1.BackColor
我正在尝试使用 Excel 16 对象模型从 MS-Access 引用相同的文本框,但它看不到任何 Excel 工作表对象下的文本框我'我在看
它在下面标有星号的行上出错并显示错误消息
Method or Data Member Not Found
Public Sub SetHexColor()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = GetObject(, "Excel.Application")
Set xlBook = Workbooks.Open("C:\Users\.........\Documents\TextBox.xlsx")
Set xlSheet = xlBook.Worksheets(1)
**Debug.Print xlSheet.TextBox1.BackColor**
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
在 Excel 中是否有另一种方法来引用和设置文本框控件的属性?
如果可能的话,我不想调用 Excel 函数来设置 属性 - 或者这可能是问题所在 - 它必须是一个 xlsm 文件?
Excel.Worksheet
是一个通用工作表对象 - 它只提供对 Worksheet
对象的“开箱即用”方法的访问:如果您通过添加成员来“子类化”您的工作表,例如作为 TextBox1
那么您将无法通过通用 Worksheet
type.
访问那些添加的成员
您可以这样做
Dim xlSheet As Object
或保留声明 as-is,并使用类似
的内容
Debug.Print xlSheet.OLEObjects("TextBox1").Object.BackColor
请注意,这并非特定于从访问 VBA 中自动执行 Excel - 如果完全在 Excel.
内工作,情况也是如此
我在 Excel 工作表 (.xlsx) 中有一个简单的文本框,我可以在其中读取 Excel VBA 子中的背景颜色 属性 :
Debug.Print TextBox1.BackColor
我正在尝试使用 Excel 16 对象模型从 MS-Access 引用相同的文本框,但它看不到任何 Excel 工作表对象下的文本框我'我在看
它在下面标有星号的行上出错并显示错误消息
Method or Data Member Not Found
Public Sub SetHexColor()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = GetObject(, "Excel.Application")
Set xlBook = Workbooks.Open("C:\Users\.........\Documents\TextBox.xlsx")
Set xlSheet = xlBook.Worksheets(1)
**Debug.Print xlSheet.TextBox1.BackColor**
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
在 Excel 中是否有另一种方法来引用和设置文本框控件的属性?
如果可能的话,我不想调用 Excel 函数来设置 属性 - 或者这可能是问题所在 - 它必须是一个 xlsm 文件?
Excel.Worksheet
是一个通用工作表对象 - 它只提供对 Worksheet
对象的“开箱即用”方法的访问:如果您通过添加成员来“子类化”您的工作表,例如作为 TextBox1
那么您将无法通过通用 Worksheet
type.
您可以这样做
Dim xlSheet As Object
或保留声明 as-is,并使用类似
的内容Debug.Print xlSheet.OLEObjects("TextBox1").Object.BackColor
请注意,这并非特定于从访问 VBA 中自动执行 Excel - 如果完全在 Excel.
内工作,情况也是如此