想用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

其实,有很多人在工作中都会碰到和我差不多同样的问题,昨天我碰到的一个朋友就是这样,因为通过上面的方法可以节省很多纸张和油墨。
能否再请教一下:如果我要打的一段文字一半在第一页,另一半在第二页。或者一半在第页二页,另一半在第三页。该如何是好呢?
作者: 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