欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 批量提取word表格数据到一个excel

批量提取word表格数据到一个excel

2025/2/8 17:22:22 来源:https://blog.csdn.net/qq_39889893/article/details/145482039  浏览:    关键词:批量提取word表格数据到一个excel
  1. 新建一个excel到word同级目录
  2. alt+f11打开vba窗口并新建模块
  3. 粘贴下方代码(修改一些必要参数)
  4. 回到excel表格界面,alt+f8选择执行该宏
  5. 注意要在信任中心开启运行vba宏
Sub 批量提取word表格数据到excel()Dim wdApp As Object, wdDoc As ObjectDim fso As Object, folder As Object, file As ObjectDim excelRow As Long, iRow As Long, iCol As IntegerDim tableNo As IntegerDim folderPath As String    tableNo = 1 ' 修改为实际表格序号,默认第一个表格excelRow = 1 ' Excel起始行folderPath = ActiveWorkbook.Path & "\" ' word文件所在目录' 创建文件系统对象Set fso = CreateObject("Scripting.FileSystemObject")Set folder = fso.GetFolder(folderPath)' 初始化WordOn Error Resume NextSet wdApp = GetObject(, "Word.Application")If Err.Number <> 0 ThenSet wdApp = CreateObject("Word.Application")End IfOn Error GoTo 0wdApp.Visible = False ' 隐藏Word窗口' 遍历文件夹中的每个Word文档For Each file In folder.FilesIf (fso.GetExtensionName(file.Path) = "doc") Or (fso.GetExtensionName(file.Path) = "docx") ThenSet wdDoc = wdApp.Documents.Open(file.Path)' 检查文档中是否存在表格If wdDoc.Tables.Count >= tableNo ThenWith wdDoc.Tables(tableNo)' 复制表格数据到Excel' 1.遍历姓名For iRow = 5 To 5For iCol = 2 To 2' 去除换行符和空格并写入ExcelCells(excelRow, iCol - 1).Value = WorksheetFunction.Clean(Replace(.Cell(iRow, iCol).Range.Text, vbCr, ""))Next iColexcelRow = excelRow + 1Next iRow' 2.遍历成绩For iRow = 3 To 3For iCol = 5 To 5' 去除换行符和空格并写入ExcelCells(excelRow - 1, iCol - 3).Value = WorksheetFunction.Clean(Replace(.Cell(iRow, iCol).Range.Text, vbCr, ""))Next iColexcelRow = excelRowNext iRow' 3.遍历其他数据信息' ' ' ' ' ' ' End WithEnd IfwdDoc.Close SaveChanges:=FalseEnd IfNext file' 清理缓存数据wdApp.QuitSet wdDoc = NothingSet wdApp = NothingSet fso = NothingMsgBox "提取完毕!找到文件数量:" & folder.Files.Count-2
End Sub

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com