[英]How do I modify query in Excel 2013 when created in Excel 2016 Power Query
我使用Power Query在Excel 2016中創建了一個工作簿。 我正在使用代碼來更改查詢。 但是我也希望能夠在Excel 2013中運行它。 如何修改代碼以訪問查詢?
這是我的代碼在Excel 2016中有效,但在2013年或更早的版本中不起作用。
Sub UpdateQuery()
Dim CmdText As String
'Compile error here "User Defined Type not defined"
Dim qry As WorkbookQuery
'Compile error here "Method or data member not found"
Set qry = ThisWorkbook.Queries("CurrentQuery")
CmdText = qry.Formula
CmdText = ... make a change
qry.Formula = CmdText
End Sub
這段代碼可以在Excel 2013中正常運行,但不能滿足我的需求。
Sub UpdateQuery2013()
Dim cmdText As String
Dim lo As ListObject
Set lo = ws.ListObjects("CurrentTable")
CmdText = lo.QueryTable.CommandText
CmdText = ... make a change
lo.QueryTable.CommandText = cmdText
End Sub
以上返回:命令文本:SELECT * FROM [QueryCurrent]連接字符串:Provider = Microsoft.Mashup.OleDb.1; Data Source = $ Workbook $; Location = QueryCurrent; Extended Properties =“”
命令類型:SQL
我真正想要的是修改QueryCurrent。 我怎么做?
這是一種解決方法。 我不知道是否有任何方法可以使用Excel 2013從VBA修改原始(超級查詢)查詢。
我終於意識到,我可以避免使用Power Query編輯器。 在Excel中輸入與以前版本相同的查詢:在功能區>數據>連接>屬性>定義選項卡上>在此處輸入查詢和連接字符串。 然后使用Excel 2013代碼進行修改。
Sub UpdateQuery2013()
Dim cmdText As String
Dim lo As ListObject
Set lo = ws.ListObjects("CurrentTable")
CmdText = lo.QueryTable.CommandText
CmdText = ... make a change
lo.QueryTable.CommandText = cmdText
End Sub
工作正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.