如何从 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.

内工作,情况也是如此