vb中控制excel,我自己写了个类库

本文提供了一系列使用VBA操作Excel的示例代码,包括创建、打开Excel文件,设置工作表,从MSFlexGrid和ADO Recordset填充数据等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

欢迎补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值