vb调用excel后如何将excel彻底关闭 100
PrivateSubCommand1_Click()DimxlAppAsExcel.ApplicationDimxlBookAsExcel.WorkbookDimxlSh...
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim FileName, SheetName As String
FileName = "D:\liulb\try\7252.xls" 'excel文件名
SheetName = "sheet1" '表名
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(FileName) '打开已经存在的EXCEL工件簿文件
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets(SheetName) '设置活动工作表
xlSheet.Cells(5, 8) = Text1.Text '给单元格B5赋值
xlSheet.Cells(6, 8) = Text2.Text '取C2的值
xlSheet.Cells(13, 1) = Text3.Text
xlSheet.Cells(5, 19) = Text4.Text
xlApp.Run "'7252.xls'!Main.Main"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"D:\liulb\try" & "\" & "Performace graphs of" & " " & xlSheet.Cells(13, 1) & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
True, IgnorePrintAreas:=False, OpenAfterPublish:=True
xlBook.Saved = True
xlBook.Close
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub
---------------------------------------------------------------------
想实现的功能就是;VB做成的一个EXE小程序,能在后台打开excel并运行出结果后自动保存为pdf.
目前存在的问题:
第一次打开exe,后可以运行,但重新输入参数以后运行可能会报错
后台总是有个excel没有关掉,重复使用该程序后,会出现很多很多只读的excel需要关闭。 展开
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim FileName, SheetName As String
FileName = "D:\liulb\try\7252.xls" 'excel文件名
SheetName = "sheet1" '表名
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(FileName) '打开已经存在的EXCEL工件簿文件
xlApp.Visible = False '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets(SheetName) '设置活动工作表
xlSheet.Cells(5, 8) = Text1.Text '给单元格B5赋值
xlSheet.Cells(6, 8) = Text2.Text '取C2的值
xlSheet.Cells(13, 1) = Text3.Text
xlSheet.Cells(5, 19) = Text4.Text
xlApp.Run "'7252.xls'!Main.Main"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
"D:\liulb\try" & "\" & "Performace graphs of" & " " & xlSheet.Cells(13, 1) & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
True, IgnorePrintAreas:=False, OpenAfterPublish:=True
xlBook.Saved = True
xlBook.Close
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
End Sub
---------------------------------------------------------------------
想实现的功能就是;VB做成的一个EXE小程序,能在后台打开excel并运行出结果后自动保存为pdf.
目前存在的问题:
第一次打开exe,后可以运行,但重新输入参数以后运行可能会报错
后台总是有个excel没有关掉,重复使用该程序后,会出现很多很多只读的excel需要关闭。 展开
展开全部
这个我也遇到,我的解决方案是杀进程
Private Sub Command1_Click()
Kill ("EXCEL.EXE")'这里是调用
End Sub
Private Sub Kill(str As String)
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name='" & str & "'")
For Each objProcess In colProcessList
objProcess.Terminate '结束进程
Next
Set objProcess = Nothing
Set colProcessList = Nothing
Set objWMIService = Nothing
End Sub
追问
你这个是相当于在VB界面上在多设置一个按键是吧?
追答
晕,你自己在过程需要的时候调用 Kill ("EXCEL.EXE")'就可以了啊
比如放到你的过程
xlApp.Quit '关闭EXCEL
Set xlApp = Nothing '释放EXCEL对象
Kill ("EXCEL.EXE")
2014-12-11
展开全部
Shell "cmd.exe /c taskkill /f /im excel.exe", vbHide
如果你打开了多个EXCEL,即执行多次,如果不知道多少,可以判断进程是否存在再执行。
代码:
BACKENDP:
If CheckApplicationIsRun("EXCEL.exe") = True Then
Shell "cmd.exe /c taskkill /IM EXCEL.exe /F /T", vbHide
GoTo BACKENDP:
End If
如果你打开了多个EXCEL,即执行多次,如果不知道多少,可以判断进程是否存在再执行。
代码:
BACKENDP:
If CheckApplicationIsRun("EXCEL.exe") = True Then
Shell "cmd.exe /c taskkill /IM EXCEL.exe /F /T", vbHide
GoTo BACKENDP:
End If
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询