如何让WORD在打印时自动加上打印份数编号共10页.docx
- 文档编号:13226112
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:7
- 大小:16.67KB
如何让WORD在打印时自动加上打印份数编号共10页.docx
《如何让WORD在打印时自动加上打印份数编号共10页.docx》由会员分享,可在线阅读,更多相关《如何让WORD在打印时自动加上打印份数编号共10页.docx(7页珍藏版)》请在冰点文库上搜索。
如何让WORD在打印时自动加上打印份数编号共10页
如何让WORD在打印时自动加上打印份数编号
bynosperon一月5th,2011
问题的提出:
老婆所在的公司需要做2011年整年的文档和表格,里面的编号随着打印份数自动更新:
比如需要打印100份,每份编号则按顺序从0001排到0100。
在网上google了一下,也有不少网友提出了类似的问题:
“公司有一份调查表,需要打印100份,每份都要有一个编号,从000001到000100。
如何让WORD在打印时自动加上打印份数编号?
”
这个需要用到word的宏操作,感觉它和ps里面的action一样,就是可以让用户自定义一些操作,让宏来重复执行。
word2007有宏录制功能(在view视窗栏里面)。
方法一:
宏循环嵌套
先手动几次:
改编号——打印——改下一个编号——再打印,让宏来记录这些动作。
然后查看这些基本动作的宏代码,在里面加入循环和嵌套。
经过自己几次尝试和修改,得到如下宏代码:
SubPrintCopies()
'Macro1Macro
DimiAsLong
DimlngStart
DimlngCount
lngCount=InputBox("Pleaseenterthenumberofcopiesyouwanttoprint","Pleaseenterthenumberofcopiesyouwanttoprint",1)
IflngCount=""Then
ExitSub
EndIf
lngStart=InputBox("Enterthestartingnumberyouwanttoprint","Enterthestartingnumberyouwanttoprint",1)
IflngStart=""Then
ExitSub
EndIf
Fori=lngStartTolngCount
Ifi<10Then
Selection.TypeTextText:
="000"&i&
Application.PrintOutFileName:
="",Range:
=wdPrintAllDocument,Item:
=_
wdPrintDocumentContent,Copies:
=1,Pages:
="",PageType:
=wdPrintAllPages,_
ManualDuplexPrint:
=False,Collate:
=True,Background:
=True,PrintToFile:
=_
False,PrintZoomColumn:
=0,PrintZoomRow:
=0,PrintZoomPaperWidth:
=0,_
PrintZoomPaperHeight:
=0
EndIf
If(i>=10)And(i<100)Then
Selection.TypeTextText:
="00"&i&
Application.PrintOutFileName:
="",Range:
=wdPrintAllDocument,Item:
=_
wdPrintDocumentContent,Copies:
=1,Pages:
="",PageType:
=wdPrintAllPages,_
ManualDuplexPrint:
=False,Collate:
=True,Background:
=True,PrintToFile:
=_
False,PrintZoomColumn:
=0,PrintZoomRow:
=0,PrintZoomPaperWidth:
=0,_
PrintZoomPaperHeight:
=0
EndIf
If(i>=100)And(i<1000)Then
Selection.TypeTextText:
="0"&i&
Application.PrintOutFileName:
="",Range:
=wdPrintAllDocument,Item:
=_
wdPrintDocumentContent,Copies:
=1,Pages:
="",PageType:
=wdPrintAllPages,_
ManualDuplexPrint:
=False,Collate:
=True,Background:
=True,PrintToFile:
=_
False,PrintZoomColumn:
=0,PrintZoomRow:
=0,PrintZoomPaperWidth:
=0,_
PrintZoomPaperHeight:
=0
EndIf
If(i>=1000)And(i<10000)Then
Selection.TypeTextText:
=i
Application.PrintOutFileName:
="",Range:
=wdPrintAllDocument,Item:
=_
wdPrintDocumentContent,Copies:
=1,Pages:
="",PageType:
=wdPrintAllPages,_
ManualDuplexPrint:
=False,Collate:
=True,Background:
=True,PrintToFile:
=_
False,PrintZoomColumn:
=0,PrintZoomRow:
=0,PrintZoomPaperWidth:
=0,_
PrintZoomPaperHeight:
=0
EndIf
Selection.TypeBackspace
Selection.TypeBackspace
Selection.TypeBackspace
Selection.TypeBackspace
Next
EndSub
执行以上代码可以最大从0001份打印到9999份,并会在光标处自动加上打印份数编号。
如第10份则会在光标处插入打印份数编号0010.
也可通过修改以上代码实现更大数目的打印量:
添加并修改相应的if语句。
以上宏代码的安装:
点击view视窗里面的宏按钮,选择viewmacros即会出现以上窗口,输入PrintCopies做为Macroname.然后选择create新建,会出现一个代码框,将以上代码复制进去,点击保存就完成PrintCopies宏的安装了。
运行:
把光标放在希望插入打印份数编号的位置,设置好打印机,然后打开如上窗口,里面会有出现一个叫做PrintCopies的宏,选上,然后单击运行,会出现2个框“Pleaseenterthenumberofcopiesyouwanttoprint”和“Enterthestartingnumberyouwanttoprint”。
分别输入相应的数值就好了。
打印机就会自动按照你的设定和以上要求来完成打印。
方法二:
通过设置文档变量来完成
思路:
在WORD中添加一个文档变量, 用宏来进行打印,每打印一次就让文档变量自动更新,直到打印完毕。
这个过程里面也要用到宏,该方法是在 MicrosoftOfficeAccess编程爱好者看到的,但里面的文档变量说的不是很清楚,基于本人又是wordVBA的门外汉,所以就先按照简单的思路编写了自己的代码救急(在上面作为方法一已经展示给大家了)。
后来有时间看了下wordVBAhelp文件,按照此方法也成功实现了以上功能。
现将该方法中的文档变量设置补充完成,并详细的展示在这里
通过宏来添加文档变量:
用上面提到的方法新建一个叫做AddDocumentVariablede的宏。
SubAddDocumentVariable()
ThisDocument.Variables.AddName:
="PrintCount"
EndSub
然后运行此宏即完成文档变量PrintCount的添加。
再新建一个宏来完成自动打印并实现对文档变量PrintCount的调用。
FunctionSetPrintCount(ByValCountNumberAsString)
DimiAsLong
DimvAsVariable
'DimstrVarNameAsString
ConststrVarNameAsString="PrintCount"
DimstrVarValueAsString
'strVarName="PrintCount"
strVarValue=CountNumber
Setv=ActiveDocument.Variables(strVarName)
IfvIsNothingThen
Setv=ActiveDocument.Variables.Add(strVarName,strVarValue)
Else
v.Value=strVarValue
EndIf
ForEachvInActiveDocument.Variables
Debug.Print"variables",v.Name,v.Value
Next
DimfAsField
ForEachfInActiveDocument.Fields
Debug.PrintLeft(f.Code.Text,Len("DOCVARIABLE"&strVarName))
Iff.Kind=wdFieldKindWarmAndLeft(f.Code.Text,Len("DOCVARIABLE"&strVarName))="DOCVARIABLE"&strVarNameThen
'保留格式:
\*MERGEFORMAT
'Debug.Printf.Code.Text
f.Update
EndIf
Next
EndFunction
Sub生成份数编号并打印到当前打印机()
DimiAsLong
DimlngStart
DimlngCount
lngCount=InputBox("请输入您要打印的份数","请输入您要打印的份数",1)
IflngCount=""Then
ExitSub
EndIf
lngStart=InputBox("请输入您要打印的起始编号","请输入您要打印的起始编号",1)
IflngStart=""Then
ExitSub
EndIf
Fori=lngStartTolngCount
SetPrintCountFormat(i,"000000")
'由于测试系统中没有打印机,所以这里暂时输出到打印文件。
如果要直接打印,可以直接用Application.PrintOut即可。
Application.PrintOutFileName:
="",Range:
=wdPrintAllDocument,Item:
=_
wdPrintDocumentContent,Copies:
=1,Pages:
="",PageType:
=wdPrintAllPages,_
ManualDuplexPrint:
=False,Collate:
=True,Background:
=True,PrintToFile:
=_
False,PrintZoomColumn:
=0,PrintZoomRow:
=0,PrintZoomPaperWidth:
=0,_
PrintZoomPaperHeight:
=0
Next
EndSub
上面这个宏名为“生成份数编号并打印到当前打印机”,改来自MicrosoftOfficeAccess编程爱好者的代码。
另外可以修改SetPrintCountFormat(i,"000000")中的"000000"来实现更大数目打印的扩展。
然后在光标处插入域“DOCVARIABLEPrintCount”操作如下:
在insert插入栏中选择quickparts>field>Docvariable.输入变量名PrintCount。
点击okay即完成插入文档变量PrintCount的操作。
然后运行“生成份数编号并打印到当前打印机”的宏,即可让WORD自动打印出打印份数。
希望以上资料对你有所帮助,附励志名言3条:
1、生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗。
2、推销产品要针对顾客的心,不要针对顾客的头。
3、不同的信念,决定不同的命运。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 WORD 打印 自动 加上 编号 10