Word用VBA一键导入Excel表格数据的方法
假如一个公司的员工信息被存储在Excel中,需要将这些信息按照表格的形式呈现在公司的Word报告中,使用此代码可以快速方便地实现这个任务。案例:
Word用VBA提取Excel文件名为员工资料文件中的工作表名为sheet1的所有数据,并在Word中以表格形式显示。
如下面的图片所示:
一、Word导入效果:
Word导入效果
二、EXCEL源表格:
EXCEL源表格
实现代码:SubExtractDataFromExcelAndCreateTableInWord()声明变量DimExcelFilePathAsStringDimExcelAppAsObjectDimExcelWorkbookAsObjectDimExcelWorksheetAsObjectDimWordAppAsObjectDimWordDocAsObjectDimWordTableAsObjectDimLastRowAsLongDimLastColumnAsLongDimiAsLongDimjAsLong设置Excel文件路径ExcelFilePathd:员工资料。xlsx创建Excel应用程序对象并打开工作簿OnErrorResumeNext开始错误处理程序SetExcelAppCreateObject(Excel。Application)SetExcelWorkbookExcelApp。Workbooks。Open(ExcelFilePath)OnErrorGoTo0关闭错误处理程序检查文件是否成功打开IfExcelWorkbookIsNothingThenMsgBox无法打开Excel文件,请检查文件路径是否正确或文件是否被其他程序或用户占用。,vbCritical,错误ExitSubEndIf获取名为Sheet1的工作表SetExcelWorksheetExcelWorkbook。Worksheets(Sheet1)获取数据行数和列数LastRowExcelWorksheet。Cells(ExcelWorksheet。Rows。Count,1)。End(4162)。Row4162表示xlUpLastColumnExcelWorksheet。Cells(1,ExcelWorksheet。Columns。Count)。End(4159)。Column4159表示xlToLeft创建Word应用程序对象并新建文档SetWordAppCreateObject(Word。Application)SetWordDocWordApp。Documents。Add()在Word文档中创建表格SetWordTableWordDoc。Tables。Add(WordDoc。Range,LastRow,LastColumn)将Excel数据复制到Word表格中Fori1ToLastRowForj1ToLastColumnWordTable。Cell(i,j)。Range。TextExcelWorksheet。Cells(i,j)。ValueNextjNexti设置表格样式WithWordTable设置边框样式。Borders。InsideLineStylewdLineStyleSingle。Borders。OutsideLineStylewdLineStyleSingle设置表格自动调整宽度和列宽度自动调整。AutoFitBehavior(wdAutoFitWindow)。AllowAutoFitTrue设置表格字体和大小。Range。Font。Name宋体。Range。Font。Size10设置表头样式。Rows(1)。Shading。BackgroundPatternColorwdColorGray15。Rows(1)。Range。Font。BoldTrue。Rows(1)。Range。Font。ColorwdColorBlack设置表格内容自动居中。Range。ParagraphFormat。AlignmentwdAlignParagraphCenterEndWith显示Word应用程序和文档WordApp。VisibleTrueWordDoc。Activate关闭Excel应用程序和工作簿ExcelWorkbook。CloseExcelApp。QuitEndSub
需要注意的是,在使用此代码之前,需要确保已安装了MicrosoftExcel和MicrosoftWord,并且在代码中指定的Excel文件路径和工作表名称是正确的。