【发布时间】:2016-10-07 07:52:32
【问题描述】:
我有一个 C# 程序,它使用 Microsoft Interop 从和向同一个 Excel 文件中读取和写入数据(然后对数据进行处理,例如将其导出到另一个接口)。
所以基本上我的项目中有一个“ExcelFileReader”类,它打开 ExcelFile,读取和写入数据,然后关闭文件。
代码片段:
m_ExcelApp = new Excel.Application();
m_ExcelWorkBook = m_ExcelApp.Workbooks.Open(m_ExcelPath, 0, false, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
如您所见,.open 方法的第三个参数是 false,这意味着 'readonly=false'(因为正如我已经提到的,我需要将数据写入文件)。因此,当我运行我的程序时,必须关闭 Excel 文件。
我现在想要做的是编写一个 VBA 宏(包含在我的 Excel 文件中),它启动我的程序(当然还读取和写入数据到我现在打开的 Excel 文件中)。我知道如何在 Excel 中包含 *.tlb 文件。
但是(我认为)我需要做的是将打开的 Excel 文件中的引用传递给我的应用程序?!?
如果可以,您有什么想法吗?如果可以,我该怎么做?非常感谢!
【问题讨论】:
标签: c# excel vba macros interop