ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8037|回复: 22

紧急求助守柔版主

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-3-24 14:29 | 显示全部楼层 |阅读模式

刚在Excel应用论坛发了,指点求教求助守柔版主

将数据按后面表格样板自动每人打印一份,有的一人几页,每一页只能序号1-15行,该如何解决?因为数据极大,用复制,粘贴要很大时间,请各位指教,谢谢!

iRE6wKa9.rar (2.62 KB, 下载次数: 58)

4KuYGX8r.rar

10.78 KB, 下载次数: 57

紧急求助守柔版主

TA的精华主题

TA的得分主题

发表于 2005-3-24 16:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

给我一点时间,我需要时间!

请楼主耐心等待,最迟明天下班前,我一定赶出来(正常的话)。

TA的精华主题

TA的得分主题

发表于 2005-3-25 07:21 | 显示全部楼层

这是利用AUTOMATION(程序自动化)的一个代码,就是把EXCEL中的内容写到WORD中去。看了楼主的EXCEL,估计是新手,注意以下几个问题:

一:你的EXCEL、WORD宏安全请设为低;

二:建议在原EXCEL工作薄的内容中粘贴(即覆盖原内容(SHEETS(1)),如果需要在其它工作薄中运行代码,必须引用MICROSOFT WORD 10.0 OBJECT LIBRARY(VBE/引用)

三:如果不会,直接发上来,我给你完成

四:对需要修改的格式,可在"名为供货人".DOT中键入2004后按下F3,修改其中的自动图文集,再选中表格和表格下的段落标记,覆盖原有的自动图文集.

五:请解压在同一文件夹下:(供货人.DOT,数据.XLS)

六:成品表为已完成的表格.

七:注意,如果对WORD,EXCEL不熟悉,请在论坛上交流,我来修改,因为如果不慎修改自动图文集不当,则程序会出错.

八:最终结果可以直接打印,也可以另存为其它WORD.DOC(注意不是模板文档).

九:如果发现自动求和结果不对,不要紧,打印前它会自动更新(域)

以下代码供参考:(于EXCEL标准模块中) ----------------------------------------------------------模块1---------------------------------------------------------- Option Explicit '运行此代码前,请检查VBE/工具 (T):/引用(R)/引用对话框中勾选: 'Microsoft Word 10.0 Object Library(10.0视版本号不同有所不同) Sub PrintToWord() Dim WdApp As Word.Application, WdDoc As Word.Document, I As Byte, MyRange As Range Dim LastRange As String, C As Range, M As Byte, N As Byte ' On Error Resume Next'忽略错误 Application.ScreenUpdating = False '关闭屏幕更新 LastRange = Sheets(1).[B65536].End(xlUp).Address '取得B列最后一行行号 Set MyRange = Sheets(1).Range("B3:" & LastRange) '定义一个区域 Set WdApp = CreateObject("Word.Application") '创建一个WORD程序 With WdApp ' .Visible = True'显示,不写此句为隐藏,可加快运行速度 '打开一个与该EXCEL工作薄同一路径下的WORD供货人.DOT(模板)文件 Set WdDoc = .Documents.Open(ThisWorkbook.Path & "\供货人.DOT") I = 1 '初始化变量 For Each C In MyRange '在指定区域中循环 '设定条件(如果I>15或者身份证号与上一个单元格不同或者I=1) '则在WORD模板中插入带格式的名为2004的自动图文集 If I > 15 Or C.Offset(-1, 0) <> C Or I = 1 Then I = 1: N = N + 1 'I初始化,N值累加 .ActiveDocument.AttachedTemplate.AutoTextEntries("2004").Insert _ where:=.Windows(WdDoc).Selection.Range, RichText:=True End If '对于WORD模板中的表格(N) With .ActiveDocument.Tables(N) If I = 1 Then .Cell(2, 2).Range = C.Offset(, -1) '名字 .Cell(2, 4).Range = C '身份证号 .Cell(2, 6).Range = C.Offset(, 1) '地址 .Cell(22, 2).Range = "MYNAME" '请在此写入你的名字 .Cell(22, 4).Range = "MYLEADER" '请在此写入法人代表的名字 .Cell(22, 6).Range = "MYDATE" '请在此写入日期 End If .Cell(I + 4, 1).Range = I '序号数 For M = 2 To 13 '依次次EXCELSHEETS(1)中的内容写入WORD表格中 .Cell(I + 4, M).Range = C.Offset(, M + 1) Next M End With I = I + 1 '累加 Next Application.ScreenUpdating = True '恢复屏幕更新 MsgBox "EXCEL-WORD工作已结束,您可以直接打印该WORD文档!" .Visible = True ' WdDoc.PrintOut'此处可直接打印 ' WdDoc.Close False'关闭并不保存该模板 ' .Quit'退出WROD End With End Sub

m5bn9P0i.zip (94.01 KB, 下载次数: 104)
[此贴子已经被作者于2005-3-25 7:22:04编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-25 09:07 | 显示全部楼层
守柔版主,你好,非常感谢你,我的确是一新手,假如每个人的序号要连着,如林美玲的第一页序号栏是1-15,第二页序号栏是16-25,该如何?

TA的精华主题

TA的得分主题

发表于 2005-3-25 11:13 | 显示全部楼层

请参:

----------------------------------------------------------模块1---------------------------------------------------------- Option Explicit '运行此代码前,请检查VBE/工具 (T):/引用(R)/引用对话框中勾选: 'Microsoft Word 10.0 Object Library(10.0视版本号不同有所不同) Sub PrintToWord() Dim WdApp As Word.Application, WdDoc As Word.Document, I As Byte, MyRange As Range Dim LastRange As String, C As Range, M As Byte, N As Byte, L As Integer ' On Error Resume Next'忽略错误 Application.ScreenUpdating = False '关闭屏幕更新 LastRange = Sheets(1).[B65536].End(xlUp).Address '取得B列最后一行行号 Set MyRange = Sheets(1).Range("B3:" & LastRange) '定义一个区域 Set WdApp = CreateObject("Word.Application") '创建一个WORD程序 With WdApp ' .Visible = True'显示,不写此句为隐藏,可加快运行速度 '打开一个与该EXCEL工作薄同一路径下的WORD供货人.DOT(模板)文件 Set WdDoc = .Documents.Open(ThisWorkbook.Path & "\供货人.DOT") I = 1 '初始化变量 For Each C In MyRange '在指定区域中循环 '设定条件(如果I>15或者身份证号与上一个单元格不同或者I=1) '则在WORD模板中插入带格式的名为2004的自动图文集 If I > 15 Or C.Offset(-1, 0) <> C Or I = 1 Then If I > 15 Then L = L + 1 Else L = 0 I = 1: N = N + 1 'I初始化,N值累加 .ActiveDocument.AttachedTemplate.AutoTextEntries("2004").Insert _ where:=.Windows(WdDoc).Selection.Range, RichText:=True End If '对于WORD模板中的表格(N) With .ActiveDocument.Tables(N) If I = 1 Then .Cell(2, 2).Range = C.Offset(, -1) '名字 .Cell(2, 4).Range = C '身份证号 .Cell(2, 6).Range = C.Offset(, 1) '地址 .Cell(22, 2).Range = "MYNAME" '请在此写入你的名字 .Cell(22, 4).Range = "MYLEADER" '请在此写入法人代表的名字 .Cell(22, 6).Range = "MYDATE" '请在此写入日期 End If .Cell(I + 4, 1).Range = I + L * 15 '序号数 For M = 2 To 13 '依次次EXCELSHEETS(1)中的内容写入WORD表格中 .Cell(I + 4, M).Range = C.Offset(, M + 1) Next M End With I = I + 1 '累加 Next Application.ScreenUpdating = True '恢复屏幕更新 MsgBox "EXCEL-WORD工作已结束,您可以直接打印该WORD文档!" .Visible = True ' WdDoc.PrintOut'此处可直接打印 ' WdDoc.Close False'关闭并不保存该模板 ' .Quit'退出WROD End With End Sub

以下附件中已包含更新代码后的工作薄和"成品表"

boYV9MV7.zip (91.46 KB, 下载次数: 80)

TA的精华主题

TA的得分主题

发表于 2005-3-25 11:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

守柔版主,对不起,这个麻烦是我给你找的,请注意休息。

http://club.excelhome.net/viewthread.php?tid=88404

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-25 12:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
守柔版主,你好,序号是这样,但是每页的合计没了,该如何解决,谢谢你的指教。[em17]

TA的精华主题

TA的得分主题

发表于 2005-3-25 12:09 | 显示全部楼层
以下是引用lhz168在2005-3-25 12:05:00的发言: 守柔版主,你好,序号是这样,但是每页的合计没了,该如何解决,谢谢你的指教。[em17]

我看过,有的,只是你不懂,这是域,不象公式那样可以随时更新.

你在打印时,它会自动合计的.OK?

如果你想进一步了解WORD中域的功能,可以参见WORD版置顶贴子<也谈WORD中的域>

请注意我在第二楼的贴子中的注意事项!

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-25 12:21 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-25 13:47 | 显示全部楼层

如需对其它的一样的书据,如需对更大量的供货者,该如何进行处理,数据超出现在数据长度。二:建议在原EXCEL工作薄的内容中粘贴(即覆盖原内容(SHEETS(1)),但数据超出现在数据长度。

如果需要在其它工作薄中运行代码,必须引用MICROSOFT WORD 10.0 OBJECT LIBRARY(VBE/引用) 这不懂,请守柔版主指教,谢谢!

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 04:50 , Processed in 0.052268 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表