繁体   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