Ric*_*d H 54 sql excel vba function excel-vba
我在excel工作表中有一个较大的表:
Column_1 | Column_2 | Column_3
ValueA       ValueB     ValueC
....
我需要的是一个函数,它将范围和类似SQL的查询字符串作为输入,并返回与查询匹配的行范围,例如:
=SQL_SELECT(A1:C1000, "SELECT * WHERE Column_1 = ValueH AND Column_3 = blah")
这样的事情存在吗?或者什么是实现自己的最佳方式?
谢谢
chr*_*sen 48
您可以使用Get External Data(显示其名称)位于Excel 2010的"数据"选项卡中,connection在工作簿中设置a来查询自身的数据.使用From Other Sources From Microsoft Query连接到Excel
设置完成后,您可以使用VBAto来操作connectionto,以及查看和修改驱动查询的SQL命令.此查询确实引用了内存工作簿,因此不需要保存来刷新最新数据.
这是一个快速Sub演示访问连接对象
Sub DemoConnection()
    Dim c As Connections
    Dim wb As Workbook
    Dim i As Long
    Dim strSQL As String
    Set wb = ActiveWorkbook
    Set c = wb.Connections
    For i = 1 To c.Count
        ' Reresh the data
        c(i).Refresh 
        ' view the SQL query
        strSQL = c(i).ODBCConnection.CommandText
        MsgBox strSQL
    Next
End Sub