技术问询:能否通过ADO加载ActiveX控件的值?
关于用ADO加载ActiveX控件值的解答
嗨,关于你问的能不能用ADO加载ActiveX控件的值这个问题,答案是不行哦。
ADO是通过OLE DB驱动来读取Excel的工作表数据,它只能识别单元格里的内容、命名区域这类常规表格数据。而ActiveX控件属于Excel的对象,并不存储在单元格的数据源中,所以ADO根本访问不到这些控件的值。
如果需要获取ActiveX控件的值,有两个可行的方向:
- 要是你必须在不打开Excel窗口的情况下操作,可以用Excel自动化(COM对象调用)——虽然会后台启动Excel进程,但能直接访问ActiveX控件的属性来取值。
- 要是可以接受打开Excel,直接在VBA里通过控件名称或索引读取就很简单,比如
Sheet1.TextBox1.Value、Sheet1.CommandButton1.Caption这类写法。
附上你提供的那段用于读取Excel数据的ADO代码:
' 在不打开Excel的情况下提取工作簿数据。 ' 返回一个Variant类型的多维数组 ' ' 2007年12月30日,适用于Excel 2000-2007 Public Function GetData( _ sourceFile As String, _ SourceSheet As String, _ SourceRange As String _ ) As Variant Dim rsCon As Object Dim rsData As Object Dim szConnect As String Dim szSQL As String Dim data As Variant ' 创建连接...(此处省略原代码后续内容) End Function
内容的提问来源于stack exchange,提问作者Anton Lahti
相关产品推荐
相关产品推荐

