Tag: office automation

访问2013年VBA自动化Excel失去窗口

我支持已经在生产多年的Access应用程序,并且Excel自动化的一部分停止了我们的Office 2013升级和从.mdb到.accdb的转换。 Access数据库包含对Microsoft Excel 15.0对象库的引用。 Excel对象被声明为: Public objXLApp As Excel.Application Public objXLBook As Excel.Workbook 并设置: Set objXLBook = GetObject(strReportPath & strTitle & ".xls") DoEvents Set objXLApp = objXLBook.Parent 在这一点上, objXLApp.visible = false。 另外, objXLApp.Windows.Count = 1,这是正确的。 如果在立即窗口中,我设置objXLApp.visible = true,那么我失去了我的窗口: objXLApp.Windows.Count = 0和引用预期的窗口返回一个'下标超出范围'的错误。 运行它从.mdb文件生成相同的行为。 有任何想法吗? 共产国际再次,代码是由几年前由其他人写的,所以如果有更好的方法来设置工作簿,我愿意提出build议。 HansUp,我可以尝试你的build议。 你能举一个例子吗? 如果有效,我会将你的答案标记为正确的。 基因,是的,原始文件是.xls格式,他们还没有升级到.xlsx。 共同制,代码停止在最后一行代码执行,然后我使用立即窗口检查值,并更改可见属性,并再次检查值。 HansUp,修复它。 我将代码更改为: Set objXLApp = […]

通过C#运行Excelmacros:在另一个工作簿上运行macros?

我正在运行一个macros,我们从WorkSheet02上的WorkSheet01调用Macro01。 使用Microsoft.Office.Interop.Excel命名空间我打开了一个WorkSheet01。 public void Main_CodedStep() { // Object for missing (or optional) arguments. object oMissing = System.Reflection.Missing.Value; // Create an instance of Microsoft Excel Excel.ApplicationClass oExcel = new Excel.ApplicationClass(); // Make it visible oExcel.Visible = true; // Open Worksheet01.xlsm Excel.Workbooks oBooks = oExcel.Workbooks; Excel._Workbook oBook = null; oBook = oBooks.Open("C:\\Users\\Admin\\Documents\\Worksheet01.xlsm", oMissing, oMissing, oMissing, oMissing, oMissing, […]

在Windows服务中从C#中删除EXCEL.exe进程

我有一个Windows服务,通过Microsoft.Office.Interop.Excel.Application对象打开Excel电子表格。 Application xlApp = new Application(); Workbook workbook = xlApp.Workbooks.Open(fileName, 2, false); … … workbook.Close(); xlApp.Quit(); 我想杀死EXCEL.exe进程,在完成工作簿的工作后仍然运行。 我试过以下没有成功… // This returns a processId of 0 IntPtr processId; GetWindowThreadProcessId(new IntPtr(xlApp.Hwnd), out processId); Process p = Process.GetProcessById(processId.ToInt32()); p.Kill(); 任何人有任何想法,我怎样才能通过Windows服务做到这一点?