我现在做这样的导出,我的过程有三种处理方式,直接打印,导出,以Excell方式打开。
已经实现了,但调用。BOOK.close.EXcel.QUIT SHEET。CLose 已经全部关闭。然后将三个对象全部置成NOTHING 。但EXcell进程依然存在(Ctrl+ALT+DEl能够发现)。导致再调用这个过程时,无法往EXCELL对象的表格中写入数据了。必须退出我的程序(即使Ctrl+ALT+DEl还能够发现EXCELL存在)再启动才能再使用该过程一次。再想用,还得退出。是不是我的程序中什么对象没退干净呢????
已经实现了,但调用。BOOK.close.EXcel.QUIT SHEET。CLose 已经全部关闭。然后将三个对象全部置成NOTHING 。但EXcell进程依然存在(Ctrl+ALT+DEl能够发现)。导致再调用这个过程时,无法往EXCELL对象的表格中写入数据了。必须退出我的程序(即使Ctrl+ALT+DEl还能够发现EXCELL存在)再启动才能再使用该过程一次。再想用,还得退出。是不是我的程序中什么对象没退干净呢????
解决方案 »
- 请教sysdzw,关于您的文本文件处理方法,我想增加一个处理函数。
- 问一个关于Double 普通算术问题
- 我回来了,顺便标记一下vb版块的专家分超过10万
- 3个"text",分别是当前时间,结束时间和经过时间,两个"command"是"开始"和"结束"。谁会编啊!
- 在VB中用什么语句可以定义EXECEL 文件中的列的数据类型?用什么语句可以清空EXECEL 文件中的数据?
- 如何终止一个被其它进程打开的Access文件?
- 请问哪儿能下载到可以浏览CSDN论坛帖子的软件?
- 如何处理临时输入的多条记录
- 麻烦大家给讲一下什么是多线程?
- 好久没有得分了,今天送点分吧!
- 有谁知道QQ的窗体标题是什么?
- 在WIN2000/9x里面如何可以实现,文本朗读
Dim xApp As Excel.Application
Dim xBook As Excel.Workbook
Dim xSheet As New Excel.Worksheet
Dim strFileName As String
Set xApp = New Excel.Application
Set xBook = xApp.Workbooks.Add
Set xSheet = xBook.Worksheets("Sheet1")
strFileName = "c:\test.xls"
If Dir(strFileName) <> "" Then Kill strFileName
xSheet.Cells(1, 1) = "Test"
xSheet.SaveAs "c:\test.xls"
Set xSheet = Nothing
xBook.Close
Set xBook = Nothing
xApp.Quit
Set xApp = Nothing
MsgBox "OK"
End Sub
range(...,...).value=二维数据。
本来这样可以把二维数据写进表格中。第一次可以,再次使用的时候,就出错了,应用对象,工作薄表格都关闭并且已经置成NOTHING了。可是还出错而且用CTrl+alt+del三个键,能发现有一个EXCEL进程在系统中。我退出我的应用程序此进程不消失。再启动程序并且再导出一次表格。又出现一个。依次类推,每次启动程序并且导出表格就出现一个进程。就这两个问题请高手帮忙啊。。
strFileName = "c:\test.xls"
If Dir(strFileName) <> "" Then Kill strFileName '我没有这两句。因为如果磁盘中有,导出时EXCEL会问是否覆盖。没有什么危害所以没做这样的处理。
xSheet.Cells(1, 1) = "Test" 这里我只不过赋一个二维数组。
xSheet.SaveAs "c:\test.xls"
只是为什么,我的程序,第一次导出时好使,再导的时候就不行了呢????而必须重新启动程序才能继续再导一次而且只能导一次。而任务管理器中每导一次就出现一个未关闭的进程。而这个进程似乎不影响我的导表(至少启动程序第一次导表不影响,而二次以后又不知是不是此原因。)我就这两个疑问。大家看看啊。
Dim j As Integer
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks().Add
Set exsheet = exwbook.Worksheets("sheet1")
'写数据
Dim MyArray() As String
ReDim MyArray(WgMc.Rows, WgMc.Cols)
For i = 0 To WgMc.Rows - 1 '行
For j = 0 To WgMc.Cols - 1 '列
' exsheet.Cells(i + 3, j + 1).Value = wgmc.TextMatrix(i, j)
MyArray(i, j) = WgMc.TextMatrix(i, j)
Next j
Next
Range(Cells(3, 1), Cells(WgMc.Rows + 2, WgMc.Cols)).Value = MyArray
'设置首行字体
For j = 1 To WgMc.Cols
exsheet.Columns(j).HorizontalAlignment = WgMc.CellAlignment
Next
exsheet.Rows("3:1").EntireColumn.AutoFit '首行自动宽度
exsheet.Rows("3:1").Font.Bold = True '粗体
exsheet.Rows("3:1").HorizontalAlignment = 3 '1右,2左3中
Range(Cells(1, 1), Cells(2, WgMc.Cols)).MergeCells = True '先合并单元格
With exsheet.Cells(1, 1)
.Value = BiaoTop '传过来的报表标题
.Font.Bold = True '粗体
.Font.Underline = xlUnderlineStyleDoubleAccounting '下划线
.HorizontalAlignment = 3 '1右,2左3中
.VerticalAlignment = 2
.Font.Size = 18
End With
exwbook.SaveAs sFile exwbook.Close
ex.Quit
Set ex = Nothing
Set exwbook = Nothing
Set exsheet = Nothing
Dim I As Integer
Dim J As Integer
Dim ex As Object
Dim exwbook As Object
Dim exsheet As Object
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks().Add
Set exsheet = exwbook.Worksheets("sheet1")
'写数据
Dim MyArray() As String
ReDim MyArray(WgMc.Rows, WgMc.Cols)
For I = 0 To WgMc.Rows - 1 '行
For J = 0 To WgMc.Cols - 1 '列
MyArray(I, J) = WgMc.TextMatrix(I, J)
Next J
Next
exsheet.Range(exsheet.Cells(3, 1), exsheet.Cells(WgMc.Rows + 2, WgMc.Cols)).Value = MyArray
sfile = "c:\test.xls"
exwbook.SaveAs sfile exwbook.Close
ex.Quit
Set ex = Nothing
Set exwbook = Nothing
Set exsheet = Nothing
MsgBox "OK"
End SubPrivate Sub Form_Load()
Dim I As Long, J As Long
With WgMc
.Rows = 20
.Cols = 6
For I = 1 To 19
For J = 1 To 5
.TextMatrix(I, J) = CLng(Rnd() * 1000)
Next J
Next I
End With
End Sub