如何关闭由邮件合并启动的 Excel 实例

发布于 2024-08-04 23:15:23 字数 260 浏览 3 评论 0原文

如何关闭通过邮件合并启动的 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

HOW TO close Excel instance started by mail merge

this code running inside launcher does not have access to Excel running via DDE ??

'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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十六岁半 2024-08-11 23:15:23

您可以像这样终止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, i.e: 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;
}

You can kill the excel process like so: (from 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, i.e: 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;
}
浅黛梨妆こ 2024-08-11 23:15:23

如果从 Excel 内部调用,则可以通过 VBA 关闭 Excel

Application.Quit

如果从 Excel 外部调用,则需要设置对 Excel 的引用,然后将其关闭。

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

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

Excel can be closed via VBA, if called from within Excel

Application.Quit

If called from outside Excel, you will need to set a reference to Excel and then close it.

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

You need to ensure that all Workbooks are closed or saved, otherwise Excel will prompt the user to save.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文