求助:VB6平台下,调用SQL数据库至EXCEL打印,退出时,遇进程无法关闭问题
- VB code
Dim objExcelSample As excel.ApplicationDim objWorkbook As excel.WorkbookDim objWorksheet As excel.WorksheetPrivate Sub Command2_Click() '退出 objWorkbook.RunAutoMacros (xlAutoClose) '执行EXCEL关闭宏 objWorkbook.Close (True) '关闭EXCEL工作簿 objExcelSample.Quit '关闭EXCEL Set objExcelSample = Nothing '释放EXCEL对象 Set objWorkbook = Nothing Set objWorksheet = NothingEnd SubPrivate Sub Command4_Click() '打印预览 Dim i As Integer Set objExcelSample = New excel.Application Set objWorkbook = objExcelSample.Workbooks.Open("d:\Temp\bb.xls") Set objWorksheet = objWorkbook.Sheets("sheet1") With Adodc1 .RecordSource = "select * from 客户信息" .Refresh End With' If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开 Set objExcelSample = CreateObject("Excel.Application") '创建EXCEL应用类 objExcelSample.Visible = True '设置EXCEL可见 Set objWorkbook = objExcelSample.Workbooks.Open("D:\temp\bb.xls") '打开EXCEL工作簿 Set objWorksheet = objWorkbook.Worksheets(1) '打开EXCEL工作表 objWorksheet.Activate '激活工作表 objWorksheet.Cells(10, 10) = "abc" '给单元格1行驶列赋值 objWorkbook.RunAutoMacros (xlAutoOpen) '运行EXCEL中的启动宏' Else' MsgBox ("EXCEL已打开")' End If i = 1 Do While Not Adodc1.Recordset.EOF '填入数据库表数据 objWorksheet.Cells(i, 1) = Adodc1.Recordset.Fields(0).Name objWorksheet.Cells(i, 2) = Adodc1.Recordset.Fields(1).Name objWorksheet.Cells(i, 3) = Adodc1.Recordset.Fields(2).Name objWorksheet.Cells(i, 4) = Adodc1.Recordset.Fields(3).Name objWorksheet.Cells(i, 5) = Adodc1.Recordset.Fields(4).Name objWorksheet.Cells(i, 6) = Adodc1.Recordset.Fields(5).Name objWorksheet.Cells(i, 7) = Adodc1.Recordset.Fields(6).Name Adodc1.Recordset.MoveNext i = i + 1 Loop objWorkbook.PrintPreview Set objExcelSample = Nothing '释放EXCEL对象 Set objWorkbook = Nothing Set objWorksheet = NothingEnd Sub
1、想实现退出自动清除bb.xls内容并保存(上面程序退出的时候,总提示保存),其中以下是bb.xls的VBA内容。
- VB code
Sub auto_open() '打开End SubSub auto_close() '关闭 Dim i As Integer Dim j As Integer For i = 1 To 255 For j = 1 To 50 Sheet1.Cells(i, j) = "" Next j Next iEnd Sub
[解决办法]
http://download.csdn.net/detail/veron_04/1627060