相关疑难解决方法(0)

如何在Excel工作表中的命名范围上运行SQL语句?

我要做的就是在Excel工作表(即命名范围,甚至A1:F100)上采用标准范围,并在其上运行一些SQL查询,并返回一个我可以在VBA代码中单步执行的记录集,或者甚至只是粘贴到同一工作簿中的其他工作表中.

使用ADODB是一个想法,但我怎么能设置connectionstring指向当前工作簿中的某个范围?

我知道在使用Microsoft查询向导之前,这不是理想的,但可以使用.我似乎无法将此引用到工作表中的范围,只能引用其他excel文件.


这是我留下的功能.当我运行它几次我的excel崩溃与通常的资源外错误消息.我已从电子表格中删除了此功能,并且所有内容都无缝运行多次,因此肯定是由此处的代码引起的.

我已经清理了所有物体(正确吗?).有没有人有什么想法会出错?连接字符串中是否有可以调整的东西,或者它可能与GetRows方法返回的变量有关?

我正在使用MS ADO 2.8,并且也尝试过2.5具有相同的行为.

Function getTimeBuckets() As Collection

Dim strFile As String
Dim strCon As String
Dim strSQL As String
Dim dateRows As Variant
Dim i As Integer
Dim today As Date

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Set getTimeBuckets = New Collection

strFile = ThisWorkbook.FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
cn.Open strCon

strSQL = "SELECT DISTINCT(Expiration) FROM [PositionSummaryTable] where …
Run Code Online (Sandbox Code Playgroud)

sql excel vba excel-vba

16
推荐指数
1
解决办法
5万
查看次数

VBA ActiveWorkbook/RefersToLocal - 1004应用程序定义或对象定义错误

执行以下行时,将引发1004运行时错误(应用程序定义或对象定义错误)

rangeString = ActiveWorkbook.Names.Item("MyTableName").RefersToLocal
Run Code Online (Sandbox Code Playgroud)

我看不出我的代码有什么问题,表名似乎是正确的.这段代码在类模块中,我不是vba专家,所以我不知道是否会引入范围等任何问题.

excel vba excel-vba

6
推荐指数
3
解决办法
955
查看次数

标签 统计

excel ×2

excel-vba ×2

vba ×2

sql ×1