Office中国论坛/Access中国论坛

标题: 请教!如何将不同的表导出到同一个Excel中? [打印本页]

作者: sxgaobo    时间: 2016-10-22 17:02
标题: 请教!如何将不同的表导出到同一个Excel中?
请教各位大侠!如何用代码将不同的表导出到同一个Excel的不同的工作表中?
作者: tmtony    时间: 2016-10-22 17:05
控制 Excel.Application
然后 用Worksheets.add 添加一个新的工作表 然后把内容写进去
大致可能是这样的原理
作者: Henry D. Sy    时间: 2016-10-22 17:20
方法很多,不知道哪种适合你,
最好传上例子
作者: sxgaobo    时间: 2016-10-22 17:42
Henry D. Sy 发表于 2016-10-22 17:20
方法很多,不知道哪种适合你,
最好传上例子

    DoCmd.OutputTo acTable, "表1", "MicrosoftExcelBiff8(*.xls)", "D:\123\导出数据.xls", False, "", 0
    DoCmd.OutputTo acTable, "表2", "MicrosoftExcelBiff8(*.xls)", "D:\123\导出数据.xls", False, "", 0
这个一运行就提示是否覆盖已有的  导出数据.xls  
作者: Henry D. Sy    时间: 2016-10-22 18:01
sxgaobo 发表于 2016-10-22 17:42
DoCmd.OutputTo acTable, "表1", "MicrosoftExcelBiff8(*.xls)", "D:\123\导出数据.xls", False, "", ...

这个是最简单的导出
而且会覆盖同文件名的
作者: sxgaobo    时间: 2016-10-22 18:56
tmtony 发表于 2016-10-22 17:05
控制 Excel.Application
然后 用Worksheets.add 添加一个新的工作表 然后把内容写进去
大致可能是这样的 ...

能麻烦您给做个例子吗?

作者: Henry D. Sy    时间: 2016-10-25 17:11
sxgaobo 发表于 2016-10-22 18:56
能麻烦您给做个例子吗?
  1. Private Sub Command0_Click()

  2.     Dim rs As New ADODB.Recordset
  3.     Dim rst As New ADODB.Recordset
  4.     Dim sSQL As String
  5.     Dim xlApp As New Excel.Application
  6.     Dim xlBook As Workbook
  7.     Dim xlSheet As Worksheet
  8.     Dim i As Integer

  9.     On Error GoTo Command0_Click_Error

  10.     Set xlApp = CreateObject("Excel.Application")
  11.     Set xlBook = Nothing
  12.     Set xlSheet = Nothing
  13.     Set xlBook = xlApp.Workbooks().Add
  14.     xlBook.SaveAs CurrentProject.Path & "" & Format(Now(), "yyyy mmdd hhmm") & " UNION.xlsx"
  15.     sSQL = "SELECT MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.Type)=1) AND ((Left([name],4))<>'msys')) ORDER BY MSysObjects.Name DESC"
  16.     rs.Open sSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  17.     Do While Not rs.EOF
  18.         Set xlSheet = xlBook.Worksheets.Add
  19.         xlSheet.Name = rs.Fields(0)
  20.         rst.Open xlSheet.Name, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
  21.         For i = 0 To rst.Fields.Count - 1
  22.             xlSheet.Cells(1, i + 1) = rst.Fields(i).Name
  23.         Next
  24.         xlSheet.Range("A2").CopyFromRecordset rst
  25.         rst.Close
  26.         rs.MoveNext
  27.     Loop
  28.     rs.Close
  29.     Set rst = Nothing
  30.     Set rs = Nothing
  31.     xlBook.Save
  32.     xlApp.WindowState = xlMaximized
  33.     xlApp.Application.Visible = True
  34.     Set xlSheet = Nothing
  35.     Set xlBook = Nothing
  36.     Set xlApp = Nothing

  37.     On Error GoTo 0
  38.     Exit Sub

  39. Command0_Click_Error:

  40.     MsgBox "Error " & Err.Number & " (" & Err.Description & ")"
  41. End Sub
复制代码
[attach]60164[/attach]



作者: Henry D. Sy    时间: 2016-10-25 17:22
忘记说要引用
[attach]60165[/attach]

作者: sxgaobo    时间: 2016-10-25 20:01
Henry D. Sy 发表于 2016-10-25 17:22
忘记说要引用

谢谢!辛苦了~~~!!!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3