导出到 excel 两张不同名称的工作表

Posted

技术标签:

【中文标题】导出到 excel 两张不同名称的工作表【英文标题】:export to excel two sheets with different names 【发布时间】:2015-12-15 18:08:34 【问题描述】:

我有一个包含两个表的容器:CH10001 和 CH10002

使用以下代码我可以导出 CH10001

sub xport2xl()
    iRow = 1
    set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
    set xlWB = xlApp.Workbooks.Add
    set xlSheet = xlWB.Worksheets(1)
    set obj = ActiveDocument.getsheetobject(ChartName)
    xlSheet.Activate
    xlSheet.Cells.Clear
    while not (isempty(xlSheet.Cells(iRow,1)))
        iRow = iRow+2
    wend
    set txt1 = ActiveDocument.GetSheetObject("CH10001")
    txt1.CopytableToClipboard TRUE
    xlSheet.Cells(iRow,1).Select
    xlSheet.Paste
end sub

如何在同一个工作簿中导出 CH10001 和 CH10002,但使用动态工作表名称?例如在工作表名称中添加getdate?

【问题讨论】:

xlWb 是一个新工作簿,那么为什么要使用iRow 循环来检查内容呢?你在哪里运行这段代码?可能有助于添加更多上下文。 更重要的是,您希望它们在单独的工作表中导出还是在同一张表中的另一个表中导出? 【参考方案1】:

如果您想以单独的表格导出这些表格,这应该对您有所帮助:

Sub xport2xl()
iRow = 1

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlWB = xlApp.Workbooks.Add
Set xlSheet = xlWB.Worksheets(1)

Set obj = ActiveDocument.GetSheetObject(ChartName)
xlSheet.Activate
xlSheet.Cells.Clear

While Not (IsEmpty(xlSheet.Cells(iRow, 1)))
    iRow = iRow + 2
Wend

Set txt1 = ActiveDocument.GetSheetObject("CH10001")
txt1.CopytableToClipboard True
'xlSheet.Activate           '---You might need to activate sheet
xlSheet.Cells(iRow, 1).Paste
'-----Set the name of the sheet here----
xlSheet.Name = "Your name here for CH10001"


'----------------------------------------------------
'------------ Code for the second table -------------
'----------------------------------------------------
On Error Resume Next
'---Try to set the second sheet
Set xlSheet = xlWB.Worksheets(2)
If Err.Number <> 0 Then
    '---If there is an error, add a new sheet
    Set xlSheet = xlWB.Worksheets.Add
Else
    '---Already assigned, nothing else to do
End If
On Error GoTo 0

Set txt1 = ActiveDocument.GetSheetObject("CH10002")
txt1.CopytableToClipboard True
'xlSheet.Activate           '---You might need to activate sheet
xlSheet.Cells(iRow, 1).Paste
'-----Set the name of the sheet here----
xlSheet.Name = "Your name here for CH10002"

End Sub

【讨论】:

以上是关于导出到 excel 两张不同名称的工作表的主要内容,如果未能解决你的问题,请参考以下文章

将 Access 表导出到 Excel,但每个名称都有不同的工作表

将我的 Access 表导出到 Excel,但将列中的不同值拆分到不同的工作表中

如何导出一个excel

如何将 Excel 数据从不同的工作表导出到 SQL-SERVER 数据库?

宏将MS Word表导出到Excel工作表

ROBDC SqlSave:如何将数据导出到 Excel 工作表中?