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