簡體   English   中英

Microsoft.Office.Interop.Excel:缺少 WorkbookQuery?

[英]Microsoft.Office.Interop.Excel: WorkbookQuery missing?

我編寫了一些 VBA,它循環遍歷工作簿中的 PowerQuery 查詢並將 M 公式導出到單獨的文件,我有一個愚蠢的想法,即編寫一個 excel 插件來執行此操作,而不是將其粘貼到所有可能需要它的工作簿中。 問題是,工作簿的查詢集合在 interop.excel 中似乎不可用,並且 QueryTables 集合不會返回 M 公式。 除非以編程方式添加下面的 VBA 並運行它,否則有人知道我可以訪問工作簿的查詢集合的方法嗎?

        For Each qry In ThisWorkbook.Queries
            filepath = directory & qry.Name & ".txt"
            Set filestream = fso.CreateTextFile(filepath, True)
            arr = Split(qry.Formula, Chr$(10))
            For i = LBound(arr, 1) To UBound(arr, 1)
                filestream.WriteLine (arr(i))
            Next i
            filestream.Close
        Next qry

編輯:為了澄清一下,這里是 c# 的樣子(使用 Excel = Microsoft.Office.Interop.Excel)。 問題是我不能在這里做像 foreach(Excel.WorkbookQuery qry in wkbk.Queries) {} 這樣的事情

        void Application_WorkbookAfterSave(Excel.Workbook wkbk, bool suc)
        {
            string wkbk_name = Path.GetFileNameWithoutExtension(wkbk.Name);
            string wkbk_path = wkbk.Path + "\\" + wkbk_name;
            DialogResult save_res = MessageBox.Show("Do you want to save scripts?", wkbk_name, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            
            if(save_res == DialogResult.Yes)
            {
                if(!Directory.Exists(wkbk_path))
                {
                    Directory.CreateDirectory(wkbk_path);
                }   
            }
        }

根據您的 excel 版本,嘗試從 microsoft 安裝互操作包。 然后檢查 microsoft excel 12.0 庫是否會在您的參考中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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