当前位置:首页 > 办公设计 > Office教程 > 如何使用VBA代码将Word的表格批量写入Excel?

如何使用VBA代码将Word的表格批量写入Excel?

1年前 (2025-05-24)Office教程830

比如说,有一个Word文件,里面有十几张表格,现在急需将每个表格的数据复制到Excel,每个表格自成一份Sheet,关键是很不巧,你的秘书MISS李请假一个月回老家了……

操作动画如下:

代码如下

Sub GetWordTable()
Dim WdApp As Object
Dim objTable As Object
Dim objDoc As Object
Dim strPath As String
Dim shtEach As Worksheet
Dim shtSelect As Worksheet
Dim i As Long
Dim j As Long
Dim x As Long
Dim y As Long
Dim k As Long
Dim brr As Variant
Set WdApp = CreateObject("Word.Application")
With Application.FileDialog(msoFileDialogFilePicker)
.Filters.Add "Word文件", "*.doc*", 1
'只显示word文件
.AllowMultiSelect = False
'禁止多选文件
If .Show Then strPath = .SelectedItems(1) Else Exit Sub
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set shtSelect = ActiveSheet
'当前表赋值变量shtSelect,方便代码运行完成后叶落归根回到开始的地方
For Each shtEach In Worksheets
'删除当前工作表以外的所有工作表
If shtEach.Name <> shtSelect.Name Then shtEach.Delete
Next
shtSelect.Name = "EH看见星光"
'这句代码不是无聊,作用在于……你猜……
'……其实是避免下面的程序工作表名称重复
Set objDoc = WdApp.documents.Open(strPath)
'后台打开用户选定的word文档
For Each objTable In objDoc.tables
'遍历文档中的每个表格
k = k + 1
Worksheets.Add after:=Worksheets(Worksheets.Count)
'新建工作表
ActiveSheet.Name = k & "表"
x = objTable.Rows.Count
'table的行数
y = objTable.Columns.Count
'table的列数
ReDim brr(1 To x, 1 To y)
'以下遍历行列,数据写入数组brr
For i = 1 To x
For j = 1 To y
brr(i, j) = "'" & Application.Clean(objTable.cell(i, j).Range.Text)
'Clean函数清除制表符等
'半角单引号将数据统一转换为文本格式,避免身份证等数值变形
Next
Next
With [a1].Resize(x, y)
.Value = brr
'数据写入Excel工作表
.Borders.LineStyle = 1
'添加边框线
End With
Next
shtSelect.Select
objDoc.Close: WdApp.Quit
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set objDoc = Nothing
Set WdApp = Nothing
MsgBox "共获取:" & k & "张表格的数据。"
End Sub

代码已有注释说明,这里就不再啰嗦了。

扫描二维码推送至手机访问。

欢迎转载或分享本篇文章。

本文链接:https://www.jcba123.com/article/1583

分享给朋友:

“如何使用VBA代码将Word的表格批量写入Excel?” 的相关文章

Excel不规范表格和数据如何整理?分分钟让你的数据井井有条!

Excel不规范表格和数据如何整理?分分钟让你的数据井井有条!

数据太乱,表格一点也不规范,不仅影响我们对数据的分析,而且有时候可能会导致数据运算出现错误等。今天,小汪老师就来为大家分享一些数据规范整理的小技巧。   01、Excel表格日期不规范 如下图所示,有的日期中间是2019/9/1,有的是2020.11.10,还有的是2...

Excel还能制作五星评分系统!

Excel还能制作五星评分系统!

经常在网上使用一些产品或者购物后,都会让我们对产品进行评分,一般都是1~5星,我们可以根据自己体验效果给出星数!其实,利用Excel也可以制作五星评分效果的。今天,小汪老师就来教一下大家制作方法。   前期准备 首先,我们准备好这样一张表,上面有评分数据,然后在旁边增加一...

Excel数据去重神器:UNIQUE函数详解

Excel数据去重神器:UNIQUE函数详解

如果你使用的是Excel 2019或者2021版本,可以使用UNIQUE函数从数据源中提取出不重复的记录,而且计算结果能随着数据源的变化自动更新。 UNIQUE函数的用法是: =UNIQUE(数据区域,返回唯一列/行,返回每个不同项目还是只出现一次的记录) 接下来咱们以Excel 2021为例...

XLOOKUP函数经典用法总结

XLOOKUP函数经典用法总结

HI,大家好,我是星光。 今天给大家分享的Excel函数是XLOOKUP,例先说一下它的基本语法。它有六个参数,成功超越大哥大OFFSET,成为参数最多的函数之一。 =XLOOKUP(查找值,查找范围,结果范围,[容错值],[匹配方式],[查询模式]) 参数看起来很多,不过只有前三个是...

如何制作PPT破碎文字

如何制作PPT破碎文字

首先,确保QQ已经打开,因为我们将使用它的截图功能(快捷键:Ctrl+Alt+A)。 第一步:在幻灯片中插入一些文字,并将背景填充为纯黑色。在第二页上,将填充颜色设置为黑色。 第二步:点击第二页,然后选择切换选项。在切换方式中选择“折断”。   第三步:这时候...

设计感强化:PPT封面设计指南

设计感强化:PPT封面设计指南

第一步:设置背景。打开PPT软件,创建一个空白演示文稿,新建幻灯片,并填充纯色背景,颜色为RGB(24, 24, 67)。 第二步:创建主视觉图形。首先插入一个圆形,并设置其渐变效果(如图2-1)。然后放大该圆形并将其移动到画布外部,只显示圆的下半部分。设置圆的渐变参数(如图2...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。