Word用VBA一键导入Excel表格数据的方法

假如一个公司的员工信息被存储在 Excel 中,需要将这些信息按照表格的形式呈现在公司的Word报告中,使用此代码可以快速方便地实现这个任务。

案例:

Word用VBA提取Excel文件名为“员工资料”文件中的工作表名为sheet1的所有数据,并在Word中以表格形式显示。

如下面的图片所示:

一、Word导入效果:

Word导入效果

二、EXCEL源表格:

EXCEL源表格

实现代码:
Sub ExtractDataFromExcelAndCreateTableInWord()    ' 声明变量    Dim ExcelFilePath As String    Dim ExcelApp As Object    Dim ExcelWorkbook As Object    Dim ExcelWorksheet As Object    Dim WordApp As Object    Dim WordDoc As Object    Dim WordTable As Object    Dim LastRow As Long    Dim LastColumn As Long    Dim i As Long    Dim j As Long        ' 设置 Excel 文件路径    ExcelFilePath = "d:\员工资料.xlsx"        ' 创建 Excel 应用程序对象并打开工作簿    On Error Resume Next ' 开始错误处理程序    Set ExcelApp = CreateObject("Excel.Application")    Set ExcelWorkbook = ExcelApp.Workbooks.Open(ExcelFilePath)    On Error GoTo 0 ' 关闭错误处理程序        ' 检查文件是否成功打开    If ExcelWorkbook Is Nothing Then        MsgBox "无法打开 Excel 文件,请检查文件路径是否正确或文件是否被其他程序或用户占用。", vbCritical, "错误"        Exit Sub    End If        ' 获取名为 "Sheet1" 的工作表    Set ExcelWorksheet = ExcelWorkbook.Worksheets("Sheet1")        ' 获取数据行数和列数    LastRow = ExcelWorksheet.Cells(ExcelWorksheet.Rows.Count, 1).End(-4162).Row ' -4162 表示 xlUp    LastColumn = ExcelWorksheet.Cells(1, ExcelWorksheet.Columns.Count).End(-4159).Column ' -4159 表示 xlToLeft        ' 创建 Word 应用程序对象并新建文档    Set WordApp = CreateObject("Word.Application")    Set WordDoc = WordApp.Documents.Add()        ' 在 Word 文档中创建表格    Set WordTable = WordDoc.Tables.Add(WordDoc.Range, LastRow, LastColumn)        ' 将 Excel 数据复制到 Word 表格中    For i = 1 To LastRow        For j = 1 To LastColumn            WordTable.Cell(i, j).Range.Text = ExcelWorksheet.Cells(i, j).Value        Next j    Next i        ' 设置表格样式    With WordTable        ' 设置边框样式        .Borders.InsideLineStyle = wdLineStyleSingle        .Borders.OutsideLineStyle = wdLineStyleSingle                ' 设置表格自动调整宽度和列宽度自动调整        .AutoFitBehavior (wdAutoFitWindow)        .AllowAutoFit = True                ' 设置表格字体和大小        .Range.Font.Name = "宋体"        .Range.Font.Size = 10                ' 设置表头样式        .Rows(1).Shading.BackgroundPatternColor = wdColorGray15        .Rows(1).Range.Font.Bold = True        .Rows(1).Range.Font.Color = wdColorBlack                ' 设置表格内容自动居中        .Range.ParagraphFormat.Alignment = wdAlignParagraphCenter    End With        ' 显示 Word 应用程序和文档    WordApp.Visible = True    WordDoc.Activate        ' 关闭 Excel 应用程序和工作簿    ExcelWorkbook.Close    ExcelApp.QuitEnd Sub

需要注意的是,在使用此代码之前,需要确保已安装了 Microsoft Excel 和 Microsoft Word,并且在代码中指定的 Excel 文件路径和工作表名称是正确的。

标题:Word用VBA一键导入Excel表格数据的方法

地址:http://www.hmhjcl.com/gzdm/11401.html