• VBA编程自动导出生成Excel表


        1    '将一个表或查询产生的记录集写入Excel表中
        2    Function ZExcel(模板名, 文件名, 记录集, 起始行, 字段数, Optional 条件 As String)
        3    Dim Excel1 As Object  ' 定义引用 Microsoft Excel 的变量。
        4    Dim dbs As Database
        5    Dim rst As Recordset
        6    Dim I, I1 As Integer
        7    Dim WJ1, WJ2, s As String
        8    'On Error GoTo err1
        9    Set dbs = CurrentDb
        10    If InStr(1, UCase(模板名), ".XLS") > 0 or InStr(1, UCase(模板名), ".XLSX") > 0 Then  '有扩展名
        11    WJ1 = CurrentProject.Path & "" & 模板名        
         '模板文件名 (CurrentProject.Path为当前数据库的路径)
        12    Else
        13    WJ1 = CurrentProject.Path & "" & 模板名 & ".XLS"        
        '模板文件名 (CurrentProject.Path为当前数据库的路径)
        14    End If
        15    If InStr(1, UCase(文件名), ".XLS") > 0 or InStr(1, UCase(文件名), ".XLSX") > 0 Then   '有扩展名
        16    WJ2 = CurrentProject.Path & "" & 文件名         '目标文件名
        17    Else
        18    WJ2 = CurrentProject.Path & "" & 文件名 & ".XLS"         '目标文件名
        19    End If
        20    FileCopy WJ1, WJ2                             '拷贝文件(模板文件拷贝成目标文件)
        21    Set Excel1 = GetObject(WJ2, "Excel.Sheet")      '建立与Excel的连接变量
        22        Excel1.Application.Visible = False          '不打开Excel程序
        23        Excel1.Parent.Windows(1).Visible = True     '可见属性为真
        24    If Nz(条件) <> "" Then 记录集 = "select * from " & 记录集 & " where " & 条件
        25    Set rst = dbs.OpenRecordset(记录集, 2)         '设置记录集
        26    If Not rst.EOF Then rst.MoveFirst              '记录集头部
        27    If Not rst.EOF Then rst.MoveNext             '记录集下移一条记录
        28    If Not rst.EOF Then rst.MoveNext             '记录集下移一条记录
        29    s = Mid(Str(起始行 + 1), 2) & ":" & Mid(Str(起始行 + 1), 2)
        30    While Not rst.EOF                             '判断记录集是否结束
        31    Excel1.Application.Rows(s).Select          '选择Excel的行
        32    Excel1.Application.Selection.Insert            '插入行
        33    rst.MoveNext                                 '记录集下移一条记录
        34    Wend                                          '循环结束语句
        35    If Not rst.EOF Then rst.MoveFirst             '记录集头部
        36    I1 = 起始行                                     'Excel的行
        37    While Not rst.EOF                             '判断记录集是否结束
        38    For I = 1 To 字段数                              '按字段数循环
        39      Excel1.Application.Cells(I1, I).Value = rst.Fields(I - 1)   '在Excel列中填写数据
        40    Next I                                       '循环结束语句
        41    rst.MoveNext                                 '记录集下移一条记录
        42    I1 = I1 + 1                                  '行加1
        43    Wend                                          '循环结束语句
        44    Excel1.Save                                     '保存Excel
        45    Excel1.Application.Quit                         '关闭Excel
        46    Set Excel1 = Nothing                            '清除内存变量
        47    Set dbs = Nothing
        48    Set rst = Nothing
        49    ZExcel = True
        50    Exit Function
        51    err1:
        52    Set Excel1 = Nothing
        53    Set dbs = Nothing
        54    Set rst = Nothing
        55    ZExcel = False
        56    End Function

     

     From <http://www.accessoft.com/article-show.asp?id=4064>

  • 相关阅读:
    TransactionScop事务机制的使用
    MVC无刷新上传图片并显示
    WebClient和WebRequest获取html代码
    Web.config配置详解
    分类和扩展有什么区别?可以分别用来做什么?分类有哪些局限性?分类的结构体里面有哪些成员?
    有序二维数组的查找
    生成Excel.xlsx文件 iOS
    charles Https抓包
    https 通信流程和Charles 抓包原理
    fastlane自动化打包ipa并发布到firim或者蒲公英
  • 原文地址:https://www.cnblogs.com/sundanceS/p/14975771.html
Copyright © 2020-2023  润新知