如何声明全局变量以便从任务管理器中杀死第二个 EXCEL.EXE

How to declare global variable in order to kill second EXCEL.EXE from Task Manager

以下代码在任务管理器中打开两个 EXCEL.EXE。

我想在 Form1 关闭时关闭任务管理器中的第二次打开 EXCEL.EXE。

Imports Microsoft.Office.Interop

Public Class Form1

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    'Kill all EXCEL.EXE process from Task Manager
    For Each prog As Process In Process.GetProcessesByName("EXCEL")
        prog.Kill()
    Next

    Dim FirstxlApp As New Excel.Application 'Open first EXCEL.EXE in the Task Manager

    Dim datestart As Date = Date.Now
    Dim SecondxlApp As New Excel.Application 'Open second EXCEL.EXE in the Task Manager
    Dim dateEnd As Date = Date.Now

    SecondxlApp.Visible = True

    Dim wb1 As Excel.Workbook
    wb1 = SecondxlApp.Workbooks.Open("C:\Book1.xlsx")

End Sub

Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

    Dim xlp() As Process = Process.GetProcessesByName("EXCEL")
    For Each Process As Process In xlp
        If Process.StartTime >= datestart And Process.StartTime <= dateEnd Then
            Process.Kill()
            Exit For
        End If
    Next

End Sub

End Class

如何声明全局变量以解决以下错误?

您的变量 dateEnddateStart 隐藏在 FormClosing 方法中,因为它们仅在 Form_Load 方法中声明。

将您的代码更改为:

Public Class Form1 Dim dateEnd, dateStart As DateTime Private Sub Form_load

然后它们将可以通过表单的所有方法访问。