[英]Microsoft.Office.Interop.Excel missing in the Component Name list
[英]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.