ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

Word 自动选择打印机打印

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-8-14 04:36 | 显示全部楼层 |阅读模式

亲问如何实现

点击打印按钮,如果文件名称是a, 自动用a 打印机打印, 如果文件名称是b, 自动用b打印机打印。

多谢

TA的精华主题

TA的得分主题

发表于 2005-8-14 06:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

实现的方法有很多,这是一个修改WORD命令的代码,如果想做得更好一些,可以使用类模块,指向WORD.APPLICAITON,然后使用BEFOREPRINT事件中修改.

请参:

'* +++++++++++++++++++++++++++++ '* Created By I Love You_Word!@ExcelHome 2005-8-14 6:11:34 '仅测试于System: Windows NT Word: 10.0 Language: 2052 '^The Code CopyIn [ThisDocument-ThisDocument]^' '* -----------------------------

Option Explicit Sub FilePrintDefault() Dim FileNameA As String, FileNameB As String With ActiveDocument If .Name = FileNameA Then Application.ActivePrinter = "AGFA-AccuSet v52.3 on LPT1:" ElseIf .Name = FileNameB Then Application.ActivePrinter = "Tencent Virtual Printer on LPT3:" Else End If .PrintOut End With End Sub '----------------------

TA的精华主题

TA的得分主题

发表于 2005-8-14 09:21 | 显示全部楼层

Sub editpaste() ActiveDocument.TypeText Text:="Hello word" Selection.Range.PasteSpecial DataType:=wdPasteHTML End Sub

老大,经常看到人家说复制后出现“hello word”的小玩意。我这么做,怎么不行啊。

TA的精华主题

TA的得分主题

发表于 2005-8-14 09:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
以下是引用konggs在2005-8-14 9:21:23的发言:

Sub editpaste() ActiveDocument.TypeText Text:="Hello word" Selection.Range.PasteSpecial DataType:=wdPasteHTML End Sub

老大,经常看到人家说复制后出现“hello word”的小玩意。我这么做,怎么不行啊。

不太明白,我也没有听说过?复制后出现?还是粘贴后出现?

出现在哪里?文本中,是前还是后,还是单独一段?还是对话框中(MSGBOX中)?

你说明白些,应该非常简单地。

TA的精华主题

TA的得分主题

发表于 2005-8-14 09:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

应该是粘贴时。在剪贴板中文本的前面。

如复制“123”,粘贴时出现“hello word 123”这样的效果。这样做?

TA的精华主题

TA的得分主题

发表于 2005-8-14 09:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

做了两个示例,供参考:

Sub EditPaste() Dim MyRange As Range Set MyRange = Selection.Range Selection.PasteAndFormat (wdPasteDefault) MyRange.InsertBefore "Hello Word!" End Sub Sub EditPaste() With Selection .InsertAfter "Hello Word!" .Collapse direction:=wdCollapseEnd .PasteAndFormat (wdPasteDefault) End With End Sub

TA的精华主题

TA的得分主题

发表于 2005-8-14 10:04 | 显示全部楼层

谢谢老大的代码

第二方法的这一句我不懂 .Collapse direction:=wdCollapseEnd

如果在hello word后面另起一行的话,加上 & Chr(13) 手工换行的话 chr(10)

对否?

TA的精华主题

TA的得分主题

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

对。

第一个代码中,不使用SELECTION对象,则MyRange 对象的位置是固定的,它就是先前的光标所在位置,如果是选定文本的话,则在选定文本前插入这个文本,请注意善用InsertBefore和InsertAfter.

第二个代码中, .Collapse direction:=wdCollapseEnd是折叠到所选内容的最后位置,注意,SELECTION对象是个可变对象,也就是说如果当前SELECTION是个光标时,Selection.InsertAfter "Hello Word!"后,SELECTION已自动选定这个插入文本的内容,相当于扩展了光标位置,此时如果粘贴的话,当然会覆盖原文本内容,所以需要折叠到最后,你就当理解为使用了END键。

TA的精华主题

TA的得分主题

发表于 2005-8-14 10:26 | 显示全部楼层

感谢老大的指点。

我就先学第一个代码好了。第二个以后再学。(现参不透)

还是复制下来,以来多看看吧。

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

本版积分规则

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

GMT+8, 2024-11-15 12:36 , Processed in 0.043819 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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