zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    正向代理和反向代理
    负载测试和压力测试
    cs 与 bs 架构
    什么是amcl
    一个故事告诉你比特币的原理及运作机制
    Tor Browser(洋葱浏览器)——一款使你匿名上网的浏览器
    CAS3.5.x(x>1)支持OAuth2 server
    帮你深入理解OAuth2.0协议
    使用Spring MVC统一异常处理实战
    tcpdump非常实用的抓包实例
  • 原文地址:https://www.cnblogs.com/sundanceS/p/14975771.html
Copyright © 2011-2022 走看看