Excel 获取多个单元格作为表连接的输入

Excel 获取多个单元格作为表连接的输入,excel,vba,Excel,Vba,我想从多个单元格和工作表中获取输入以创建查询,然后将该查询用于连接 我复制了一个在不同Excel文件中使用的模块,该模块对数据透视表执行相同的操作,但我希望它能与普通表一起工作 概述excel文件: 带有必须用于筛选的名称列表的“设置”表 表“所有事件2014”,其中有一个表,该表具有连接,必须使用新查询刷新 表“SQL”,其中包含我希望在不使用WHERE语句的情况下使用的查询。连接字符串也被放在这里 我感觉下面的行是错误的,通常你会使用。数据透视表,如果它是一个数据透视表,但这次它是一个表。我

我想从多个单元格和工作表中获取输入以创建查询,然后将该查询用于连接

我复制了一个在不同Excel文件中使用的模块,该模块对数据透视表执行相同的操作,但我希望它能与普通表一起工作

概述excel文件:

带有必须用于筛选的名称列表的“设置”表

表“所有事件2014”,其中有一个表,该表具有连接,必须使用新查询刷新

表“SQL”,其中包含我希望在不使用WHERE语句的情况下使用的查询。连接字符串也被放在这里

我感觉下面的行是错误的,通常你会使用。数据透视表,如果它是一个数据透视表,但这次它是一个表。我想知道我必须用什么来让它和桌子一起工作

Set tab_I = ActiveWorkbook.Worksheets("All Incidents 2014").Range("A1").TableObject

Module:
--------------------------------------

Function Update_2014()

'-----------------------------------------------------------------

Dim in_sql As String

Dim sql_I1 As String

Dim tab_I As TableObject

Dim connection As String

'-----------------------------------------------------------------

in_sql = ""

sql_I1 = ActiveWorkbook.Worksheets("SQL").Range("A1").Value

Set tab_I = ActiveWorkbook.Worksheets("All Incidents 2014").Range("A1").PivotTable

connection = ActiveWorkbook.Worksheets("SQL").Range("B1")

'-----------------------------------------------------------------

For Each s In ActiveWorkbook.Worksheets("Settings").Range("C5:C500")

    If s.Value = "" Then
        in_sql = in_sql
    Else
        in_sql = in_sql & "'%" & s.Value & "%'," '& vbCrLf
    End If

Next s

in_sql = Left(in_sql, Len(in_sql) - 1)

'-----------------------------------------------------------------

tab_I.PivotCache.connection = "OLEDB;"

sql_I1 = sql_I1 & ", table (sys.odcivarchar2list (" & in_sql & ")) Where SERVICE like column_value"

tab_I.PivotCache.CommandText = sql_I1

tab_I.PivotCache.connection = connection

'-----------------------------------------------------------------

tab_I.Refresh

End Function

找到以下解决方案:

Set pt_I = ActiveWorkbook.Worksheets("Sheetname").ListObjects("Table_name")