ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 之前的求助内容简化下!~~~~~~~~~~~~

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-11-12 09:27 | 显示全部楼层 |阅读模式
将下面例子中 非黑白的字页码,有底色的页码,有彩色图片的页码,输出到word或者txt里

主要是招标文件 几百页内容  有的是彩色的 大部分是黑白的   为了不浪费彩色打印机的碳粉 分开打印

比如word和txt里内容为:1,2,5,23,117..............

输出颜色页码.rar (29.58 KB, 下载次数: 15)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-12 12:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个很麻烦吗?

TA的精华主题

TA的得分主题

发表于 2016-11-12 12:47 来自手机 | 显示全部楼层
笑九方 发表于 2016-11-12 12:35
这个很麻烦吗?


不难,就是要时间,没时间搞!跟你上一个贴原理一样,自己搞一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-12 14:50 | 显示全部楼层
那大神 这样嘞 你分享一下  如何判断图片所在的页码【一页有多张图片的话 只输出一个页码】。就这个不会了

TA的精华主题

TA的得分主题

发表于 2016-11-12 16:57 | 显示全部楼层
笑九方 发表于 2016-11-12 14:50
那大神 这样嘞 你分享一下  如何判断图片所在的页码【一页有多张图片的话 只输出一个页码】。就这个不会了

你附件中没有图片?,所以不用判断了!!!(文档中图片也得区分浮动还是嵌入?)

TA的精华主题

TA的得分主题

发表于 2016-11-13 11:17 | 显示全部楼层
黑白和彩色图片我不会判断:
  1. Sub dsfsda()
  2. On Error Resume Next
  3. Dim co As New Collection
  4.     For i = 1 To ActiveDocument.ActiveWindow.Panes(1).Pages.Count
  5.         ActiveDocument.GoTo(wdGoToPage, wdGoToAbsolute, i).Select
  6.         Selection.Bookmarks("\page").Range.Select
  7.         If Selection.ShapeRange.Count > 0 Or Selection.InlineShapes.Count > 0 Then
  8.             co.Add i & "----有图"
  9.         Else
  10.             Set S = Selection.Range.Duplicate
  11.             With S.Find
  12.                 .Text = "[!^13]"
  13.                 .MatchWildcards = True
  14.                 Do While .Execute
  15.                     If Not .Parent.InRange(Selection.Range) Then Exit Do
  16.                     If .Parent.HighlightColorIndex <> wdAuto Or .Parent.Font.ColorIndex <> wdAuto Then

  17.                         co.Add i & "------有彩色字体或底纹"
  18.                         Exit Do
  19.                     End If
  20.                 Loop
  21.             End With
  22.         End If
  23.     Next
  24.    
  25.     Kill "c:\tem.txt"
  26.     Open "c:\tem.txt" For Append As #1
  27.     Print #1, "有颜色的字体或图像的页码为:"
  28.     For i = 1 To co.Count
  29.         Print #1, co(i)
  30.     Next
  31.     Close #1
  32.     Shell "notepad c:\tem.txt", vbNormalFocus
  33. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2016-11-13 21:04 | 显示全部楼层
本帖最后由 duquancai 于 2016-11-13 23:24 编辑
  1. Private Sub CommandButton1_Click()
  2.    Dim rng As Range, d As Object, Act As Document, k, i%, Ds As Range
  3.    Application.ScreenUpdating = False
  4.    Set d = CreateObject("Scripting.Dictionary")
  5.    Set Act = ActiveDocument
  6.    On Error Resume Next
  7.    For i = 1 To Act.ActiveWindow.ActivePane.Pages.Count
  8.       Selection.GoTo 1, 1, i
  9.       Set rng = Selection.Bookmarks("\page").Range
  10.       If rng.InlineShapes.Count + rng.ShapeRange.Count > 0 Then
  11.          d.Add i, "": GoTo 100
  12.       Else
  13.          Set Ds = rng.Duplicate
  14.          With Ds.Find
  15.             .Text = "[!^13]{1,}"
  16.             .MatchWildcards = True
  17.             Do While .Execute
  18.                If Not .Parent.InRange(rng) Then Exit Do
  19.                If .Parent.HighlightColorIndex <> wdAuto Or .Parent.Font.ColorIndex <> wdAuto Then
  20.                   d.Add i, "": Exit Do
  21.                End If
  22.             Loop
  23.          End With
  24.       End If
  25. 100      Next
  26.    For Each k In d.keys
  27.       stxt = stxt & k & ","
  28.    Next
  29.    Open Act.Path & "\页码.txt" For Output As #1
  30.    Print #1, "图形/图片/彩色字/高亮字所在页码为:" & stxt
  31.    Close #1
  32.    Application.ScreenUpdating = True
  33.    MsgBox "页码已经输出到同文件夹下的TXT文本!"
  34. End Sub
复制代码

输出颜色页码.rar

29.83 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-14 16:54 | 显示全部楼层
膜拜2位大神~~~~~~~~~~ 解决了这个难题

TA的精华主题

TA的得分主题

发表于 2016-11-14 17:10 | 显示全部楼层
本帖最后由 duquancai 于 2016-11-14 17:47 编辑
笑九方 发表于 2016-11-14 16:54
膜拜2位大神~~~~~~~~~~ 解决了这个难题
  1. Sub 输出页码()
  2. '   输出只需要彩色打印的页码至txt文本,以便降低打印成本!
  3.    Dim rng As Range, d As Object, Act As Document, k, i%, Ds As Range
  4.    Application.ScreenUpdating = False
  5.    Set d = CreateObject("Scripting.Dictionary")
  6.    Set Act = ActiveDocument
  7.    On Error Resume Next
  8.    For i = 1 To Act.ActiveWindow.ActivePane.Pages.Count
  9.       Set rng = Selection.GoTo(1, 1, i).Bookmarks("\page").Range
  10.       If rng.InlineShapes.Count + rng.ShapeRange.Count > 0 Then
  11.          d.Add i, "": GoTo 100
  12.       Else
  13.          Set Ds = rng.Duplicate
  14.          With Ds.Find
  15.             .Text = "[!^13]{1,}"
  16.             .MatchWildcards = True
  17.             Do While .Execute
  18.                If Not .Parent.InRange(rng) Then Exit Do
  19.                If .Parent.HighlightColorIndex <> wdAuto Or .Parent.Font.ColorIndex <> wdAuto Then
  20.                   d.Add i, "": Exit Do
  21.                End If
  22.             Loop
  23.          End With
  24.       End If
  25. 100      Next
  26.    For Each k In d.keys
  27.       stxt = stxt & k & ","
  28.    Next
  29.    Open Act.Path & "\页码.txt" For Output As #1
  30.    Print #1, "图形/图片/彩色字/高亮字所在页码为:" & stxt
  31.    Close #1
  32.    Application.ScreenUpdating = True
  33.    MsgBox "页码已经输出到同文件夹下的TXT文本!"
  34. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-11-15 09:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
特别感谢 @duquancai
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-13 14:02 , Processed in 0.027295 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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