我想把VB中的数据保存在Excel中,我用的一个开始和结束按钮,但是当我按下结束按钮时,Excel并没有在进程中消失
,除非我把整个程序给结束了才可以终止Excel这个进程,可我又不能终止程序的运行,问下高手有什么方法可以在不用
终止程序的情况下就可以结束Excel进程。下面是我的程序代码:
Dim exApp As Excel.Application
Private Sub start_Command_Click()
Set exApp = New Excel.Application
CommonDialog1.Filter = "Excel 表|*.xls"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) >= 1 Then
exApp.Workbooks.Open CommonDialog1.FileName
Range(Cells(1, 1), Cells(1, 1)) = "采集的温度"
Range(Cells(1, 2), Cells(1, 2)) = "P(比例系数)"
Range(Cells(1, 3), Cells(1, 3)) = "I(积分系数)"
Range(Cells(1, 4), Cells(1, 4)) = "D(微分系数)"
exApp.ActiveWorkbook.Save
exApp.ActiveWorkbook.Close
End If
End Sub
望大家给点意见!
Private Sub stop_Command_Click()
exApp.Quit
Set exApp = Nothing
End Sub
,除非我把整个程序给结束了才可以终止Excel这个进程,可我又不能终止程序的运行,问下高手有什么方法可以在不用
终止程序的情况下就可以结束Excel进程。下面是我的程序代码:
Dim exApp As Excel.Application
Private Sub start_Command_Click()
Set exApp = New Excel.Application
CommonDialog1.Filter = "Excel 表|*.xls"
CommonDialog1.ShowOpen
If Len(CommonDialog1.FileName) >= 1 Then
exApp.Workbooks.Open CommonDialog1.FileName
Range(Cells(1, 1), Cells(1, 1)) = "采集的温度"
Range(Cells(1, 2), Cells(1, 2)) = "P(比例系数)"
Range(Cells(1, 3), Cells(1, 3)) = "I(积分系数)"
Range(Cells(1, 4), Cells(1, 4)) = "D(微分系数)"
exApp.ActiveWorkbook.Save
exApp.ActiveWorkbook.Close
End If
End Sub
望大家给点意见!
Private Sub stop_Command_Click()
exApp.Quit
Set exApp = Nothing
End Sub
解决方案 »
- VB中如何获得Treeview中第一个节点??
- 用crystal report控件时出现 713 ,应用程序定义或对象定义错误
- 用Webbrowser控件打开指定的HTM文件时出现问题,急!急!
- 想得到下面程序的源代码,请高手帮忙!!!!!!!
- 怎么获得别的EXE文件中某text中的string?
- SQLSERVER2000数据库维护的问题(很弱)?
- VB如何调用 用VC++写的CRC16的DLL
- 装宽带问题!!!
- 请问大家,在MSHFlexGrid上显示记录,能不能指定某个列的宽度,我想让字段包含有“记录”两个字的列显示特定的宽度,能不能实现?
- sql2000语句转换
- 如何获取拖盘图标的位置?
- listview之容量大小排序~达人请进~谢谢
stop_Command_Click 明显多余,而且如果不按结束按钮而连按两次开始按钮就会多出一个未关闭的 Excel 实例。
你的这种应用应该将所有的 Excel 操作全部在一个按钮内实现,exApp 变量也应该作为过程级变量声明。
for i =0 to exApp.workbooks.count-1
exApp.workbooks(i).close()
next你试试看看可行。
Private Sub stop_Command_Click()
for i =0 to exApp.workbooks.count-1
exApp.workbooks(i).close
next
exApp.Quit
Set exApp = Nothing
End Sub
http://topic.csdn.net/u/20080713/18/656d84fe-12d1-43ae-9e64-0f1900de3a1c.html
'打开excel文件
Public Sub openExcel(ByVal strName As String)
If blnOpenStatus Then
closeExcel
End If
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Open(strName)
Set xlsSheet = xlsBook.ActiveSheet
blnOpenStatus = True
End Sub'关闭excel文件
Public Sub closeExcel()
If blnOpenStatus Then
blnOpenStatus = False
xlsBook.Close
xlsApp.Quit
Set xlsApp = Nothing
Set xlsBook = Nothing
Set xlsSheet = Nothing
End If
End Sub
当然, xlsApp xlsBook xlsSheet 为模块级变量
blnOpenStatus 标记是否有打开的EXCEL进程;
若有则先关闭,若没有则不关闭;