如何closures通过邮件合并启动的Excel实例

如何closures通过邮件合并启动的Excel实例

运行在启动器内的这段代码不能访问通过DDE运行的Excel?

'For i = 1 To Workbooks.Count ' MsgBox ("here" + Workbooks(i).Name) 'If (Workbooks(i).Name <> ActiveWorkbook.Name) Then 'Workbooks(i).Close 'End If 'Next i 

你可以像这样杀死excel进程:(来自http://www.dreamincode.net/code/snippet1543.htm

 //Namespaces needed using System.Diagnostics; public bool FindAndKillProcess(string name) { //here we're going to get a list of all running processes on //the computer foreach (Process clsProcess in Process.GetProcesses()) { //now we're going to see if any of the running processes //match the currently running processes by using the StartsWith Method, //this prevents us from incluing the .EXE for the process we're looking for. //. Be sure to not //add the .exe to the name you provide, ie: NOTEPAD, //not NOTEPAD.EXE or false is always returned even if //notepad is running if (clsProcess.ProcessName.StartsWith(name)) { //since we found the proccess we now need to use the //Kill Method to kill the process. Remember, if you have //the process running more than once, say IE open 4 //times the loop thr way it is now will close all 4, //if you want it to just close the first one it finds //then add a return; after the Kill clsProcess.Kill(); //process killed, return true return true; } } //process not found, return false return false; } 

如果从Excel中调用Excel,则可以通过VBAclosuresExcel

 Application.Quit 

如果从外部Excel中调用,则需要设置对Excel的引用,然后closures它。

 Set appExcel = GetObject(, "Excel.Application") appExcel.Quit 

您需要确保closures或保存所有工作簿,否则Excel将提示用户保存。