根据EXCEL数据自动生成WORD报表
VBA说
共 2801字,需浏览 6分钟
· 2021-12-19
需求描述
这个是知乎上一个朋友的付费提问内容,因为需求很简单,我把程序直接写好了,在这里把代码分享给大家。
我们有一个Excel报表文件,格式如下:
我们要把里面的数据,一键导入到以下的Word文档:
这个文档看着也很简单,有一些特别需要注意的地方,我这里说一下
表格中的天气部分,需要根据Excel表格内部的信息判断,如果是【晴天】,则Word表格中的晴天那一列要打两个√。
思路
诸如【日期】、【巡查项目点】等这些信息,代码采用替换的方式解决。
Word文档作为一个模板存在,后期会单独另存一份新的文档。
Word表格内部直接按位置写入数据。
具体代码
Sub 导出word()
Set doc = CreateObject("word.application") '创建Word对象
Set wd = doc.Documents.Open(ThisWorkbook.Path & "\日报模板 .docx")
doc.Visible = True
'//判断天气
Set tbl = wd.tables(1)
Select Case Trim(Range("b3").Value)
Case "晴"
tbl.Cell(4, 2).Range.Text = "√"
tbl.Cell(5, 2).Range.Text = "√"
Case "阴"
tbl.Cell(4, 3).Range.Text = "√"
tbl.Cell(5, 3).Range.Text = "√"
Case "雨"
tbl.Cell(4, 4).Range.Text = "√"
tbl.Cell(5, 4).Range.Text = "√"
Case "雷暴"
tbl.Cell(4, 5).Range.Text = "√"
tbl.Cell(5, 5).Range.Text = "√"
Case "大风"
tbl.Cell(4, 6).Range.Text = "√"
tbl.Cell(5, 6).Range.Text = "√"
Case "台风"
tbl.Cell(4, 7).Range.Text = "√"
tbl.Cell(5, 7).Range.Text = "√"
End Select
'//写word表格其余信息
tbl.Cell(4, 8).Range.Text = Range("c3").Value '平均气温
tbl.Cell(4, 9).Range.Text = Range("d3").Value '相对湿度
tbl.Cell(3, 10).Range.Text = Range("e3").Value '平均气温
'//写段落中的信息
replaceStr doc, Range("a3").Text, "{$日期}"
replaceStr doc, Range("f3").Value, "{$巡查项目点}"
replaceStr doc, Range("g3").Value, "{$养护团队次数}"
replaceStr doc, Range("h3").Value, "{$养护团队项目点}"
replaceStr doc, Range("i3").Value, "{$病害治理包组次数}"
replaceStr doc, Range("j3").Value, "{$病害治理项目点}"
'//另存生成的文档,并且关闭模板文档
wd.SaveAs ThisWorkbook.Path & "\" & Range("a3").Text & "日报.docx"
wd.Close False
doc.Quit
MsgBox "完成!"
End Sub
Function replaceStr(doc, reStr, findStr)
doc.Selection.HomeKey 6
With doc.Selection.Find
.Text = findStr '要查找的内容
.Forward = True
.Replacement.Text = reStr '替换的结果
.Wrap = 1
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchByte = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = False
.Execute Replace:=1
End With
End Function
参考文章
评论
CVPR 2024|大视觉模型的开山之作!无需任何语言数据即可打造大视觉模型
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出一种序列建模 (sequential modeling) 的方法,不使用任何语言数据,训练大视觉模型。>>加入极市CV技术交流群,走在计算机视觉的最前沿本文目录1 序列建模打造大视觉模型(来自 U
极市平台
1
FaceChain高保真人像风格生成挑战赛:一等奖方案
Datawhale分享 作者:马琦钧,Datawhale成员简 介大家好,我是马琦钧,Datawhale成员,毕业于浙江农林大学,统计学/会计学双学位,获得过由阿里云、谷歌、百度、CVPR、思否、极棒等举办的相关赛事奖项。本次主要分享 FaceChain 高保真人像风
Datawhale
1
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
OpenAI的Sora竟然造假:生成的AI大片只有1%的AI,剩下的99%是人工!
点蓝色字关注“机器学习算法工程师”设为星标,干货直达!啊?Sora火爆短片《气球人》,也“造假”了???背后艺术家团队的最新揭秘,可谓一石激起千层浪:原来,视频画面并非完全由AI生成,其中有大量视觉效果需要人类后期实现。be like:这下网友不干了,合着大家伙儿跟OpenAI玩真心,OpenAI背
机器学习算法工程师
1
让扩散模型听话的小秘籍?CAN:通过操控权重来控制条件生成模型,图像生成效率大升级!
↑ 点击蓝字 关注极市平台作者丨科技猛兽编辑丨极市平台极市导读 本文提出的 CAN 模型 (Condition-Aware Neural Network) 是一种对图像生成模型添加控制的方法。CAN 可以通过动态操纵神经网络的权重来控制图像生成过程。作者在 ImageNet 图像
极市平台
0
Open-Sora全面开源升级:支持16s视频生成和720p分辨率
机器之心发布 机器之心编辑部Open-Sora 在开源社区悄悄更新了,现在单镜头支持长达16秒的视频生成,分辨率最高可达720p,并且可以处理任何宽高比的文本到图像、文本到视频、图像到视频、视频到视频和无限长视频的生成需求。我们来试试效果。生成个横屏圣诞雪景,发b站再生成个竖屏,发抖音还能
机器学习算法与Python实战
0
OpenUI:输入一段文字就能生成网!页!!
今天给大家介绍一个开源的 AI 网页生成工具:OpenUI!!!前言 在软件开发领域,用户界面(UI)的设计和构建确实是一个至关重要的环节。传统的 UI 开发需要设计师和开发人员紧密合作,通过反复的设计、修改和测试来达到理想的效果,这个过程往往耗时且成本较高。随着 AI 技术的发展,现在有越来越多的
前端技术江湖
0
21.3K star!推荐一款可视化自动化测试/爬虫/数据采集神器!功能免费且强大!
【温馨提示】由于公众号更改了推送规则,不再按照时间顺序排列,如果不想错过测试开发技术精心准备的的干货文章,请将测试开发技术设为“星标☆”,看完文章在文尾处点亮“在看”!大家好,我是狂师!在大数据时代,信息的获取与分析变得尤为重要。对于开发者、数据分析师乃至非技术人员来说,能够高效地采集网络数据并进行
测试开发技术
4