我需要运行 Excel 文件中存在的宏。该宏将在文件中创建一个新工作表并在其中填充数据。该宏可以调用任意多次,并且每次都会在同一工作簿中生成一个新工作表。
有两种情况:
我做了什么:
Application excel = new Application() { Visible = true };
excel.Workbooks.Open(pathToExcelXlsmFile);
excel.Run("MyMacro", parameter);
这将打开一个新的 Excel,从 pathToExcelXlsmFile 复制内容并运行宏。 我如何实现这两个场景?
我正在运行 core6。我尝试这样做来查看工作簿是否处于活动状态,但它似乎不起作用。
excel = (Application)Marshal2.GetActiveObject("Excel.Application");
excel.Workbooks[pathToExcelXlsmFile]; // Doesn't work
excel.Workbooks.Items[pathToExcelXlsmFile]; // Doesn't work
excel.Workbooks.get_Item[pathToExcelXlsmFile];// Doesn't work
我用的是:
string FilePath [ = Ofd.FileName ];
Excel.Application excel = new Excel.Application();
Excel.Workbook wb = excel.Workbooks.Open(FilePath, 0, true, 5, "", "", false, Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
if (null == wb)
{
MessageBox.Show(string.Format("Excel Workbook '{0}' can't open...", FilePath));
}