陆续更新中,常用复杂操作。
一、目录:
8.VBA批量提取word表格到EXCEL中
9.数据透视表再加工
10.文本日期快速转换成日期格式
8.VBA批量提取word表格到EXCEL中
这里有若干份同样表格,但是不同内容的word文档。需求是:将所有的word里面表格的内容全部汇总到一个excel表格当中,如下图:
没错,word里面同样也是可以用vba代码的。
思路也是很简单:遍历读取每个word文档,提取指定的表格内容到excel表中即可,源代码如下,大部分网上都有现成的,永恒君做了一些修改而言。
Sub 提取word表格()
mypath = ThisWorkbook.Path & "\"
myname = Dir(mypath & "*.docx")
m = 1
Do While myname <> ""
Set mydoc = GetObject(mypath & myname)
With mydoc
m = m + 1
With .Tables(1)
Cells(m, 1) = m - 1 '序号
Range("A1:F1") = Array("序号", "姓名", "性别", "身份证号", "住址", "联系方式")
Cells(m, 2) = Replace(.cell(1, 2).Range.Text, "", "")
Cells(m, 3) = Replace(.cell(2, 2).Range.Text, "", "")
Cells(m, 4) = Replace(.cell(3, 2).Range.Text, "", "")
Cells(m, 5) = Replace(.cell(4, 2).Range.Text, "", "")
Cells(m, 6) = Replace(.cell(5, 2).Range.Text, "", "")
End With
.Close False
End With
myname = Dir()
Loop
Set mydoc = Nothing
MsgBox "提取完成"
End Sub
看一下效果:
9.数据透视表再加工
对于数据透视表部分自动再次计算合计数,选择:字段、项目和集。计算字段可以新增列加工,计算项可以实现行加工。非常好用
10.文本日期快速转换
早上一朋友问我excel中如何将类似这样“19850421”的文本日期转换为“1985-04-21”。我的第一反应就是直接设置单元格格式为日期,于是打开excel试了试结果显示“##############”悲剧了,于是想到函数,就在excel中给她组合了一条函数“=CONCATENATE(MID(F9,1,4),"-",MID(F9,5,2),"-",MID(F9,7,2))”结果“还要用函数,这么麻烦”(很囧我)。
于是百度求教了下,分享下一个文本日期转换日期的方式:
1、加入需要转换的文本日期是这样滴;
2、选择“数据|分列”;
3、保持默认“下一步”;
4、选择分隔符号“TAB键”下一步;
5、选择“日期”点击完成就可以了
6、就可以看到所要的效果
7、如果还需别的格式可以【设置单元格格式|自定义】: