繁体   English   中英

如何从 MS-Access VBA 读取/设置 Excel 文本框属性

[英]How to read/set Excel Textbox property from MS-Access VBA

我在 Excel 工作表 (.xlsx) 中有一个简单的文本框,我可以在其中读取 Excel VBA 子中的 BackColor 属性:

Debug.Print TextBox1.BackColor

我正在尝试使用 Excel 16 Object Model 从 MS-Access 引用相同的文本框,但它看不到我正在查看的任何 Excel 工作表对象下的文本框

它在下面标有星号的行上出错并显示错误消息

未找到方法或数据成员

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 function 来设置属性——或者这就是问题所在——它必须是一个 xlsm 文件?

Excel.Worksheet是一个通用工作表 object - 它只提供对工作表“开箱即用”方法的访问Worksheet :如果您通过添加诸如TextBox1之类的成员来“子类化”您的工作表,那么您将无法访问那些添加的成员通过通用Worksheet类型。

你可以这样做

Dim xlSheet As Object

或者按原样保留声明,并使用类似的东西

Debug.Print xlSheet.OLEObjects("TextBox1").Object.BackColor

请注意,这并不特定于从访问 VBA 自动化 Excel - 如果完全在 Excel 内工作,情况也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM