注册 登录
编程论坛 Excel/VBA论坛

excel表格数据通过VBA导出至WORD表格

Ts1898 发布于 2023-04-08 11:47, 527 次点击
只有本站会员才能查看附件,请 登录
excel表格数据通过设计好的VBA一键导出至指定的WORD文档的表格,包括表格中的文字和数字,Word中事先已有表格,但是Word表格的行数和列数会根据Excel的行和列变化,请教各位大神该怎么写VBA代码
3 回复
#2
Ts18982023-04-08 11:49
Word中可能有很多个表格,但是导出到特定的表格,比如word中有管理费用,销售费用,研发费用。。。。。。。各种表格,Excel不同的表格只能导出至指定的word表格
#3
厨师王德榜2023-04-10 16:02
代码供参考,此代码在本人的示例文件中运行通过.
只有本站会员才能查看附件,请 登录
#4
东海ECS2023-04-15 14:03
以下是示例代码,请根据实际情况进行修改:

程序代码:
Sub ExportToWord()

    ' Excel range to export
    Dim rng As Range
    Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:D10")
   
    ' Word application and document
    Dim wdApp As Word.Application
    Dim wdDoc As Word.Document
    Set wdApp = New Word.Application
    Set wdDoc = wdApp.Documents.Open("C:\Path\To\Word\Document.docx")
   
    ' Word table to export to
    Dim wdTbl As Word.Table
    Set wdTbl = wdDoc.Tables(1)
   
    ' Get dimensions of Excel range
    Dim rowCount As Long
    Dim colCount As Long
    rowCount = rng.Rows.Count
    colCount = rng.Columns.Count
   
    ' Check if table needs to be resized
    If rowCount > wdTbl.Rows.Count Then
        wdTbl.Rows.Add rowCount - wdTbl.Rows.Count
    End If
    If colCount > wdTbl.Columns.Count Then
        wdTbl.Columns.Add colCount - wdTbl.Columns.Count
    End If
   
    ' Export data from Excel range to Word table
    Dim i As Long
    Dim j As Long
    For i = 1 To rowCount
        For j = 1 To colCount
            wdTbl.Cell(i, j).Range.Text = rng.Cells(i, j).Value
        Next j
    Next i
   
    ' Clean up objects
    Set wdTbl = Nothing
    Set wdDoc = Nothing
    wdApp.Quit
    Set wdApp = Nothing

End Sub

说明:

将要导出的 Excel 范围保存在名为 rng 的 Range 对象中。

创建 Word 应用程序及文档对象。

获取 Excel 范围的行和列数,并检查 Word 表格行和列数是否需要调整。

将 Excel 范围中的数据导出到 Word 表格中。

清除对象,关闭 Word 应用程序。



1