假如一个公司的员工信息被存储在 Excel 中,需要将这些信息按照表格的形式呈现在公司的Word报告中,使用此代码可以快速方便地实现这个任务案例:Word用VBA提取Excel文件名为“员工资料”文件中的工作表名为sheet1的所有数据,并在Word中以表格形式显示。
如下面的图片所示:一、Word导入效果:
Word导入效果二、EXCEL源表格:
EXCEL源表格实现代码:SubExtractDataFromExcelAndCreateTableInWord()声明变量DimExcelFilePath As StringDimExcelApp As Object
DimExcelWorkbook As ObjectDimExcelWorksheet As ObjectDimWordApp As ObjectDimWordDoc As ObjectDimWordTable As Object
DimLastRow As LongDimLastColumn As LongDimi As LongDimj As Long设置 Excel 文件路径ExcelFilePath = "d:\员工资料.xlsx"
创建 Excel 应用程序对象并打开工作簿OnError Resume Next 开始错误处理程序SetExcelApp = CreateObject("Excel.Application")SetExcelWorkbook = ExcelApp.Workbooks.Open(ExcelFilePath)
OnError GoTo 0 关闭错误处理程序检查文件是否成功打开IfExcelWorkbook Is Nothing ThenMsgBox"无法打开 Excel 文件,请检查文件路径是否正确或文件是否被其他程序或用户占用。
", vbCritical, "错误"ExitSubEndIf获取名为 "Sheet1" 的工作表SetExcelWorksheet = ExcelWorkbook.Worksheets("Sheet1")
获取数据行数和列数LastRow = ExcelWorksheet.Cells(ExcelWorksheet.Rows.Count, 1).End(-4162).Row -4162 表示 xlUpLastColumn
= ExcelWorksheet.Cells(1, ExcelWorksheet.Columns.Count).End(-4159).Column -4159 表示 xlToLeft创建 Word 应用程序对象并新建文档
SetWordApp = CreateObject("Word.Application")SetWordDoc = WordApp.Documents.Add()在 Word 文档中创建表格SetWordTable = WordDoc.Tables.Add(WordDoc.Range, LastRow, LastColumn)
将 Excel 数据复制到 Word 表格中Fori = 1 To LastRowForj = 1 To LastColumnWordTable.Cell(i,j).Range.Text = ExcelWorksheet.Cells(i, j).Value
NextjNexti设置表格样式WithWordTable设置边框样式.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
EndWith显示 Word 应用程序和文档WordApp.Visible = TrueWordDoc.Activate关闭 Excel 应用程序和工作簿ExcelWorkbook.CloseExcelApp.Quit
EndSub需要注意的是,在使用此代码之前,需要确保已安装了 Microsoft Excel 和 Microsoft Word,并且在代码中指定的 Excel 文件路径和工作表名称是正确的。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。