数千人考试,需要做准考证,虽然可以用文档合并,但由于种种原因,只能用VBA来做了。

原始数据在xlsx文件中,表头:

把需要做的准考证做成“准考证模板.docx”,只一页:

并与xlsx文件放在一起,当前目录下建一目录 photo ,里面放的是照片,所有照片的文件名都是 身份证号.jpg,在xlsx中写VBA代码:

Sub zkz()Dim wd As New Word.Application, shp As Object, ar()photopath$ = ThisWorkbook.Path & "\photo\"docpath$ = ThisWorkbook.Path & "\"rowscount% = Range("A65536").End(3).Row - 1ar = Range("a2").Resize(rowscount, 7).Valuedocfname$ = "准考证.docx"docpathfname$ = docpath & docfnameFileCopy docpath & "准考证模板.docx", docpathfnameWith wd.Documents.Open docpathfname.Application.ScreenUpdating = 0.Application.DisplayAlerts = False.Visible = 0.ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument.Selection.WholeStory.Selection.Copy 制If rowscount > 3 ThenFor i% = 1 To rowscount - 2 Step 2.Selection.EndKey Unit:=wdStory.Selection.InsertBreak Type:=wdPageBreak.Selection.PasteAndFormat (wdPasteDefault)Next iEnd Ifi = 1For Each t In .ActiveDocument.Tablest.Range.Cells(5).Range.Text = ar(i, 6)t.Range.Cells(7).Range.Text = ar(i, 1)t.Range.Cells(9).Range.Text = ar(i, 7)t.Range.Cells(11).Range.Text = ar(i, 2)t.Range.Cells(13).Range.Text = ar(i, 5)t.Range.Cells(17).Range.Text = ar(i, 3)t.Range.Cells(19).Range.Text = Right("00" & ar(i, 4), 3) & "考室"phfname$ = Dir(photopath & ar(i, 7) & ".jpg")If phfname = "" Thent.Range.Cells(3).Range.Text = "无相片"ar(i, 1) = "无相片"Elset.Range.Cells(3).Range.InlineShapes.AddPicture Filename:=photopath & phfnamear(i, 1) = "有相片"End Ifi = i + 1If i > UBound(ar) Then Exit ForNextEnd Withwd.Documents.Savewd.QuitSet wd = Nothing[j1] = "备注"[j2].Resize(UBound(ar), 1) = arMsgBox "准考证已生成,请查看" & docpathfname & ",J列为有无照片的情况请核查"
End Sub

由于是在xlsx中运行的代码调用word所以要引用micosoft word *****,否则报错

用VBA生成word文档的准考证相关推荐

  1. 控制生成word文档

    前段时间才做了一个,将测试数据生成word文档.     其中有表格.画图形         用模版文件来替换最方便,修改模版就修改了格式.     将要填的数据定义成一个符号如<NAME> ...

  2. 怎么用C++生成WORD文档,详细步骤 - (参考基础上原创)

    (前年11月就说要写这篇技术日志了,一直拖到今天,直到自己觉得再不写会忘掉的时候.唉,现在自己果然是很懒啊,争取以后能一个星期写一篇,我是不是应该到CSDN去写呢?总是感觉在校内写技术日志不伦不类-- ...

  3. php导出doc文件_PHP生成Word文档的方法

    PHP生成Word文档的方法 首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境.由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apac ...

  4. php 内容自动生成word文档,php生成word文档的例子

    /** * 生成word文档 * * @param string $html 内容部分 * @param string $file 文件名称 * @param string $code 当前文件编码, ...

  5. 将HTML导出生成word文档

    前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...

  6. 用Aspose.Words for .NET动态生成word文档中的图片或水印

    1.概述 在项目中生成word文档,这个功能很普遍的,一般生成都是纯文字或是列表的比较多,便于客户打印,而要把图片也生成到word文档中的需求有些客户也是需要的,例如产品图片.这次我们介绍的是如何利用 ...

  7. python读取word指定内容_python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于w ...

  8. java 导出word换行_Java 导出数据库表信息生成Word文档

    一.前言 最近看见朋友写了一个导出数据库生成word文档的业务,感觉很有意思,研究了一下,这里也拿出来与大家分享一波~ 先来看看生成的word文档效果吧 下面我们也来一起简单的实现吧 二.Java 导 ...

  9. Aspose.Words简单生成word文档

    Aspose.Words简单生成word文档 Aspose.Words.Document doc = new Aspose.Words.Document(); Aspose.Words.Documen ...

最新文章

  1. 安装centos后无法引导启动windows7的解决方法
  2. 二十六、二叉树--查找指定节点
  3. 初学者如何搭建一个自己专属的电子实验室?
  4. 用递归方法对二叉树进行先序、中序和后序遍历
  5. HDU - 1525
  6. golang实现AES ECB模式的加密和解密
  7. sublime text3 错误解决
  8. UnblockNeteaseMusic解锁网易云灰色歌曲(更新:用咪咕音乐可以免费听)
  9. win10设置护眼模式
  10. 明安图(卡特兰)数(及其扩展 折线法)
  11. mac多屏幕切换快捷键
  12. 数字图像处理第五章笔记
  13. Java实现QQ邮箱验证码发送
  14. cp文件时,文件名带有空格无法正常cp怎么办?
  15. 用户信息管理的功能开发
  16. 文件10:文件路径-信息查询方法
  17. 事还得慢慢做,环境还得靠自己准备
  18. 如何在细胞疗法CAR-T靶点同质化激烈竞争中突围?
  19. 适合学生学计算机专业的电脑,什么电脑比较适合用于学计算机专业的学生用
  20. dnf php的补丁放哪,dnf补丁放哪_dnf版本补丁放在哪里

热门文章

  1. mysql创建函数的权限_MySQL创建用户和权限管理的方法
  2. callio项目—Bootstrap响应式网页(1+X Web前端开发中级 例题)
  3. FPGA电机控制源码(verilog+nios2架构)FPG FPGA电机控制源码(verilog+nios2架构)FPGA电机控制源码
  4. Jacobian and Hessian(雅克比矩阵和海塞矩阵)
  5. java视频接口_视频源常见接口介绍
  6. 浅谈 串行信号 转换成 并行信号 原理
  7. 高德地图 JS Web 添加自定义图标,自定义窗口标记
  8. SDK创新型区块链生态平台
  9. Unity之如何接入google cardboard-xr-plugin实现android手机VR
  10. Gitlab 双重认证和访问令牌的使用