想用vba完成打印所选内容到它原来的位置,请高人指点
时间:2009-02-03
来源:互联网
作者: shiedron 发布时间: 2009-02-03
作者: LangQueS 发布时间: 2009-02-03

[ 本帖最后由 shiedron 于 2009-2-4 15:51 编辑 ]
作者: shiedron 发布时间: 2009-02-04
看看如下代码是否可行。其实际效果是打印当前页,只是先将当前页中选定区域以外的文本字体临时设置为白色再打印而已。要求当前页没有有图片等内容,当然也可设置不打印图形对象。
Sub test()
With ActiveDocument
.Range(.Bookmarks("\page").Start, Selection.Start).Font.Color = wdColorWhite
.Range(Selection.End, .Bookmarks("\page").End).Font.Color = wdColorWhite
.PrintOut Range:=wdPrintCurrentPage
.Undo 2
End With
End Sub
作者: sylun 发布时间: 2009-02-04
作者: LangQueS 发布时间: 2009-02-04
昨天我运用和你们相同的原理已经将问题解决了。但是我写的代码要比你写的要繁琐许多,这里就不拿出来班门弄斧了。因为工作需要,我们每天都要用word写大量的纯文字文档(没有图像),然后把它打印出来。而且打印出来的东西还必需是连贯的。也就是说,今天打印的东西要接着昨天的,明天打印的东西要接着今天的。以前我和我的同事们都是在word里将以前写的都删掉,然后在前面插入空行再打印出来。操作起来很是烦人,所以我想通过VBA编程来提高工作效率,减轻工作负担。在此,我代表我的同事们再次谢谢了。祝万事如意百事可乐,牛年工作牛赚钱更牛!其实,有很多人在工作中都会碰到和我差不多同样的问题,昨天我碰到的一个朋友就是这样,因为通过上面的方法可以节省很多纸张和油墨。
能否再请教一下:如果我要打的一段文字一半在第一页,另一半在第二页。或者一半在第页二页,另一半在第三页。该如何是好呢?
作者: shiedron 发布时间: 2009-02-05
Sub test2()
'如果有选定区域(可跨页)则只打印选定区域的内容,否则打印插入点至文档结尾的内容
With ActiveDocument
.Range(0, Selection.Start).Font.Color = wdColorWhite
If Selection.Type = wdSelectionNormal Then
.Range(Selection.End, .Content.End).Font.Color = wdColorWhite
.PrintOut Range:=wdPrintFromTo, From:=.Bookmarks("\page").Range.Information(wdActiveEndPageNumber), _
To:=Selection.Information(wdActiveEndPageNumber)
.Undo 2
Else
.PrintOut Range:=wdPrintFromTo, From:=.Bookmarks("\page").Range.Information(wdActiveEndPageNumber), _
To:=.ComputeStatistics(wdStatisticPages)
.Undo
End If
End With
End Sub
作者: sylun 发布时间: 2009-02-05
作者: shiedron 发布时间: 2009-02-05
运行时错误‘13’
类型不匹配
.PrintOut Range:=wdPrintFromTo, From:=.Bookmarks("\page").Range.Information(wdActiveEndPageNumber), _
To:=Selection.Information(wdActiveEndPageNumber)
以上代码可能有问题。
作者: shiedron 发布时间: 2009-02-10
引用:
原帖由 shiedron 于 2009-2-10 09:04 发表第二组代码test2运行时有错误提示
运行时错误‘13’
类型不匹配
.PrintOut Range:=wdPrintFromTo, From:=.Bookmarks("\page").Range.Information(wdActiveEndPageNumber), _
To:=Selectio ...
Sub test2()
'如果有选定区域(可跨页)则只打印选定区域的内容,否则打印插入点至文档结尾的内容
With ActiveDocument
.Range(0, Selection.Start).Font.Color = wdColorWhite
If Selection.Type = wdSelectionNormal Then
.Range(Selection.End, .Content.End).Font.Color = wdColorWhite
.PrintOut Range:=wdPrintFromTo, From:=CStr(.Bookmarks("\page").Range.Information(wdActiveEndPageNumber)), _
To:=CStr(Selection.Information(wdActiveEndPageNumber)), Background:=True
.Undo 2
Else
.PrintOut Range:=wdPrintFromTo, From:=CStr(.Bookmarks("\page").Range.Information(wdActiveEndPageNumber)), _
To:=CStr(.ComputeStatistics(wdStatisticPages)), Background:=True
.Undo
End If
End With
End Sub
作者: sylun 发布时间: 2009-02-10
作者: shiedron 发布时间: 2009-02-10
作者: lisan 发布时间: 2011-04-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28















