假如一个公司的员工信息被存储在 Excel 中,需要将这些信息按照表格的形式呈现在公司的Word报告中,使用此代码可以快速方便地实现这个任务。
案例:Word用VBA提取Excel文件名为“员工资料”文件中的工作表名为sheet1的所有数据,并在Word中以表格形式显示。
如下面的图片所示:
一、Word导入效果:
二、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