Attribute VB_Name = "MyExcel"
Option Explicit
'c:/program files/microsoft office/office/excel*.olb
Private MyExcel As Excel.Application
Private MyWorkBook As Excel.Workbook
Private MyWorkSheet As Excel.Worksheet
Private Ceated As Boolean
Private ExcelFile As String
Private ExcelName As String
Public Sub ExcelShow()
MyExcel.Visible = True
End Sub
Public Function GetCeated() As Boolean
GetCeated = Ceated
End Function
Public Function CeateExecl() As Boolean
On Error GoTo error
Set MyExcel = New Excel.Application
Set MyWorkBook = MyExcel.Workbooks.add
Set MyWorkSheet = MyWorkBook.Sheets(1)
CeateExecl = True
Ceated = True
Exit Function
error:
CeateExecl = False
End Function
Public Function OpenExcel(File As String) As Boolean
If Dir(File) = "" Then
MsgBox "文件不存在!", vbOKOnly, "错误"
OpenExcel = False
Exit Function
End If
On Error GoTo error
Set MyExcel = New Excel.Application
Set MyWorkBook = MyExcel.Workbooks.Open(File)
Set MyWorkSheet = MyWorkBook.Sheets(1)
ExcelFile = File
OpenExcel = True
Ceated = True
Exit Function
error:
OpenExcel = False
End Function
Public Function WorKBookAdd() As Boolean
If Ceated Then
Set MyWorkBook = MyExcel.Workbooks.add()
Set MyWorkSheet = MyWorkBook.Worksheets(1)
Else
WorKBookAdd = CeateExecl()
End If
End Function
Public Sub SetSheet(Index As Integer)
On Error GoTo error
If Ceated Then
If MyWorkBook.Sheets.Count >= Index Then
Set MyWorkSheet = MyWorkBook.Sheets(Index)
End If
End If
error:
End Sub
Public Sub CloseExcel()
On Error GoTo error
MyWorkBook.Close
MyExcel.Quit
Set MyWorkSheet = Nothing
Set MyWorkBook = Nothing
Set MyExcel = Nothing
error:
End Sub
Public Function GetAppPath() As String
Dim AppPath As String
AppPath = App.Path
If Right(AppPath, 1) <> "/" Then AppPath = AppPath & "/"
GetAppPath = AppPath
End Function
Public Function GetExcelFile() As String
GetExcelFile = ExcelFile
End Function
Public Function GetExcelName() As String
GetExcelName = Mid(ExcelFile, InStrRev(ExcelFile, "/") + 1)
End Function
Public Function GetWorkSheet() As Excel.Worksheet
If Ceated Then
Set GetWorkSheet = MyWorkSheet
Else
Set GetWorkSheet = Nothing
End If
End Function
Public Function GetWorkBook() As Excel.Workbook
If Ceated Then
Set GetWorkBook = MyWorkBook
Else
Set GetWorkBook = Nothing
End If
End Function
Public Function MSFlexGridToExcel(MyMSFlexGrid As MSFlexGrid) As Boolean
Dim i, j As Integer
Dim MyRange As Excel.Range
On Error GoTo error
With MyMSFlexGrid
For i = 0 To .Rows - 1
MyWorkSheet.Columns(i + 1).ColumnWidth = .ColWidth(i) / 100
For j = 0 To .Cols - 1
MyWorkSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j)
Next j
Next i
End With
MSFlexGridToExcel = True
Exit Function
error:
MSFlexGridToExcel = False
End Function
Public Function RecordToExcel(Record As ADODB.Recordset) As Boolean
Dim i, n As Integer
On Error GoTo error
With Record
For i = 0 To .Fields.Count - 1
MyWorkSheet.Cells(1, i + 1) = .Fields(i).Name
Next i
n = 2
Do While .EOF
For i = 0 To .Fields.Count - 1
MyWorkSheet.Cells(n, i + 1) = .Fields(i).Name
Next i
Loop
End With
RecordToExcel = True
Exit Function
error:
RecordToExcel = False
End Function
http://download.youkuaiyun.com/source/349935
有几个问题解决不了,
怎样判断excel是否关闭
和excel有关的msdn
欢迎补充