ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何批量设置不打印所有文本框?

如何批量设置不打印所有文本框?

作者:绿色风 分类: 时间:2022-08-17 浏览:215
楼主
rongjun
Q: 如何批量设置不打印所有文本框?
A: 采用如下代码:
  1. Sub kk()
  2. Dim T As Shape
  3. For Each T In ActiveSheet.Shapes
  4.     If T.Type = 17 Then
  5.         T.Select
  6.         Selection.PrintObject = msoFalse
  7.     End If
  8. Next
  9. End Sub
或者参考kevinchengcw 版的代码:
  1. Sub kk()
  2. Dim Sh As Shape
  3. For Each Sh In ActiveSheet.Shapes
  4.     If Sh.Name Like "*TextBox*" Then
  5.         Sh.Select
  6.         Selection.PrintObject = msoFalse
  7.     End If
  8. Next Sh
  9. End Sub

如何批量设置不打印所有文本框?.rar
2楼
biaotiger1
我没装打印机,无法预览

  1. ……
  2. T.ControlFormat.PrintObject = msoFalse
  3. ……
if结构内用上面语句是否可行?
3楼
海绵宝宝
Sub kk()

Dim Sh As Shape

For Each Sh In ActiveSheet.Shapes

    If Sh.Name Like "*TextBox*" Then

        Sh.Select

        Selection.PrintObject = msoFalse

    End If

Next Sh

ActiveWindow.SelectedSheets.PrintPreview

End Sub


但是打印预览里面还是出现文本框了啊,打印出来还是有文本框啊,请继续探讨解决此问题,谢谢
4楼
海绵宝宝
谢谢荣版,您的代码是正确的,第二个代码好像测试不成功,十分感谢您的热心回答
5楼
biaotiger1
我用rongjun版主的文件测试,以上二代码都好用啊。
另外,昨天在家里没装打印机的代码也好用,如下:
  1. Sub kk()
  2. Dim T As Shape
  3. For Each T In ActiveSheet.Shapes
  4.     If T.Type = 17 Then
  5.         T.ControlFormat.PrintObject = msoTrue
  6.     End If
  7. Next
  8. End Sub


msoTrue 变成 msoFalse
6楼
海绵宝宝
标兄的代码也可以,哇塞,收获不小,学习了

Sub ss()

Dim Sh As Shape

For Each Sh In ActiveSheet.Shapes

    If Sh.Name Like "*TextBox*" Then

T.ControlFormat.PrintObject = msoFalse

    End If

Next Sh
ActiveWindow.SelectedSheets.PrintPreview
End Sub

小弟发段三位高手的综合体版本,哈哈哈哈


见笑了
7楼
ljh29206
我想不打印worksheet里面的所有文本框的内容!
我用上边的代码 放到我的文件里!
但操作不了 能指点下么!
8楼
海绵宝宝
怎么会 操作不了,我们都能成功的,你实在不行就把您的附件上传上来
9楼
ljh29206
我的打印区域固定在[F3:H3]
然后放置1个文本在上边   在this work book 里面放入下边代码

Private Sub Workbook_Open()
Dim T As Shape
For Each T In ActiveSheet.Shapes
    If T.Type = 17 Then
        T.Select
        Selection.PrintObject = msoFalse
    End If
Next
End Sub

但是却打印不了!
文本框不打印.rar
10楼
海绵宝宝
看看这是不是您要的效果啊
文本框不打印.rar
11楼
ljh29206
多谢老师,我初学不懂 连该个数字都不会,惭愧了!
还想问一下   T.Type = 17 代表什么东西呢  为什么改成T.Type = 1  就能用了呢?
12楼
海绵宝宝
这个TYPE值是根据您的对象来设置的,17代表文本框,而1代表自选图形,您文件里面用的是自选图形,所以要做相应的代码变动

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap