簡體   English   中英

在Excel 2016 Power Query中創建后如何在Excel 2013中修改查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM