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

时间:2017-03-31 19:25:56

标签: excel vb.net excel-interop

以下代码在任务管理器中打开两个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

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

enter image description here

1 个答案:

答案 0 :(得分:1)

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

将您的代码更改为:

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

然后,他们将可以使用表单访问所有方法。