Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

导出EXCEL

飛謌  发表于:2019-06-24 21:34:08  
复制

按照表中的地区字段导出,以地区为单位批量导出,地区中有北京,河南,河北,陕西,山西,一次导出5个EXCEL表

导出表样式

点击下载此附件

 

Top
仙来 发表于:2019-06-25 08:04:50
飛謌 发表于:2019-06-25 23:16:52


1.现在W7电脑打开报错

2.XP电脑导出EXCEL合计不居中显示

1.求老师帮忙看看框起来的是什么意思,我标注的是否正确?

On Error GoTo err

Dim strSQL1, strSQL2 As String
Dim rst1, rst2 As Object
Dim strid As String
Dim objxls As Object
Dim lngNumber, N, L As Long
     strSQL1 = "SELECT 表1.区公司 FROM 表1 GROUP BY 表1.区公司;"
     Set rst1 = CurrentDb.OpenRecordset(strSQL1, dbOpenDynaset)
     rst1.MoveFirst
     Do Until rst1.EOF
     strid = rst1!区公司 '循环读取分组字段的值
   ' MsgBox strid
     strSQL2 = "SELECT 表1.区公司, 表1.月份, 表1.业务量, 表1.流转额 FROM 表1 where 区公司='" & strid & "'"
     Set rst2 = CurrentDb.OpenRecordset(strSQL2, dbOpenDynaset)
     If rst2.RecordCount > 0 Then
    '如有数据则将游标指针移到最后一条记录
     rst2.MoveLast
     '获取记录集中的记录数
     lngNumber = rst2.RecordCount
     End If
            Set objxls = CreateObject("excel.Application")
            objxls.Workbooks.Add
            With objxls.Sheets("Sheet1")
            '-----------------------------------------------------------表头数据
           .Range("A1") = strid & "结算明细表"
           .Range("A2") = "区公司"
           .Range("b2") = "月份"
           .Range("c2") = "业务量"
           .Range("d2") = "流转额"
            N = 3
            L = N + lngNumber
            '------------------------------------------------------------表格数据
            rst2.MoveFirst
            Do While Not rst2.EOF
           .Range("A" & N) = rst2("区公司")
           .Range("B" & N) = rst2("月份")
           .Range("C" & N) = rst2("业务量")
           .Range("D" & N) = rst2("流转额")
            rst2.MoveNext
            N = N + 1
            Loop
            '------------------------------------------------------------表尾数据
           .Range("A" & L) = "合计"
           .Range("D" & L) = DSum("流转额", "表1", "区公司='" & strid & "'")
           .Range("A" & L + 1) = "制表单位:"
           .Range("C" & L + 1) = "制表日期:"
           .Range("D" & L + 1) = Date
           .Range("D" & L + 1).NumberFormatLocal = "yyyy-m-d"   '显示格式
           '-------------------------------------------------------------设置格式
            With .Range("A2:D10")
           .ColumnWidth = 14 '调整列宽
           .RowHeight = 20 '调整行高
           .Font.Size = 12 '字体大小
           .HorizontalAlignment = xlCenter '水平对齐
           .VerticalAlignment = xlCenter '垂直对齐
           .Font.ThemeColor = xlThemeColorLight1 '字体颜色
           .Font.ThemeFont = xlThemeFontMinor
            End With
           '-------------------------------------------------------------设置格式
           .Range("A1:D1").MergeCells = True '合并列表
           .Range("A1:D1").HorizontalAlignment = xlCenter '水平对齐
           .Range("A1:D1").VerticalAlignment = xlCenter '垂直对齐 xlBottom关闭
           .Range("A1:D1").Font.Size = 18 '字体大小
           .Range("A1:D1").Font.Bold = True '字体加粗
           .Range("A1:D1").RowHeight = 30 '调整行高
           .Range("A" & L & "," & "B" & L + 1 & "," & "C" & L + 1).HorizontalAlignment = xlRight '线条
           .Range("A2" & ":" & "D" & L).Borders.LineStyle = xlContinuous  '边框样式
           End With
           objxls.ActiveWorkbook.SaveAs FileName:=CurrentProject.Path & "\" & strid & "绩效表.xls"    ' 导出名称
           objxls.ThisWorkbook.Close '关闭工作簿
           Set objxls = Nothing
           Set rst2 = Nothing
         ' objxls.Visible = False '是否打开EXCEL
  rst1.MoveNext '移到下一条记录
  Loop
  rst1.MoveFirst


  'Set objxls = Nothing
  Set rst1 = Nothing

err: Exit Sub

点击下载此附件



仙来 发表于:2019-06-26 15:37:44
飛謌 发表于:2019-06-27 06:55:31
请问有没有导出excel页面设置的代码,顶端标题行,上边距,下边距,左右边距。

西出阳关无故人 发表于:2019-06-28 09:26:42
顶端标题行,上边距,下边距,左右边距...”,可以在Excel中录制宏,再参考该宏的代码,移植到access即可。word、Excel的很多功能、动作都可以采用这个方式。

飛謌 发表于:2019-06-28 11:29:25
试了不行。

总记录:6篇  页次:1/1 9 1 :