ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 不重复保留word文档中的字符

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-16 09:48 | 显示全部楼层
413191246se 发表于 2018-4-15 14:06
楼主,如果文档较大,请耐心等待,不要动键盘、鼠标,请试用下面的宏:

非常非常感谢您的热心帮助!

反馈一下运行结果:
6百万字的文档,运行后:
QQ截圖20180415181321.png
QQ截圖20180415181354.png

TA的精华主题

TA的得分主题

发表于 2018-4-16 16:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
413191246se 发表于 2018-4-15 14:06
楼主,如果文档较大,请耐心等待,不要动键盘、鼠标,请试用下面的宏:

辛苦了!有空体验一下代码效果。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-16 21:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ttkxssry 于 2018-4-17 12:29 编辑

10楼的好朋友的代码非常强大,更让人感动的是这份热心肠,对我帮助非常大。在这里衷心感谢这位朋友!

目前,我有2个文档,有一个文档是6百万字符,另一个是2千万字符,运行后会认为是大文档而出现错误提示。

我在想,我是否应该改变思维来解决这个问题,总之,目的是删除重复的字符,达到这样的效果:全部保留原文档的字符,但保留下来的字符又互相不同(不重复)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-16 22:10 | 显示全部楼层
我想到了一个办法,来解决大文档的问题。

我先将文档字符数减少,然后再运行10楼的代码。

TA的精华主题

TA的得分主题

发表于 2018-4-16 23:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 duquancai 于 2018-4-17 17:26 编辑
ttkxssry 发表于 2018-4-16 09:48
非常非常感谢您的热心帮助!

反馈一下运行结果:

删除。。。。。

TA的精华主题

TA的得分主题

发表于 2018-4-17 02:20 | 显示全部楼层
杜先生 代码 前 5 行,必须放到“Option Explicit”语句下面才能执行,要执行 main 这个程序,几乎是瞬间完成,但结果是否正确,不可知。——杜先生 辛苦了!——也谢谢 楼主 夸我半天,其实我的小程序对付小文档还行,大的不行。

TA的精华主题

TA的得分主题

发表于 2018-4-17 10:14 | 显示全部楼层
试试:
  1. Sub test()
  2.     Dim lngCount As Long, lngIndex As Long
  3.     Dim strTemp As String
  4.     Dim strText As String, arrKeys As Variant, strResult As String
  5.     Dim objDic As Object
  6.    
  7.     Set objDic = CreateObject("Scripting.Dictionary")
  8.     lngCount = ThisDocument.Characters.Count
  9.     strTemp = ThisDocument.Content
  10.     For lngIndex = 1 To lngCount
  11.         strText = Trim(Mid(strTemp, lngIndex, 1))
  12.         If strTemp <> "" Then objDic(strText) = ""
  13.     Next
  14.    
  15.     arrKeys = objDic.keys
  16.    
  17.     strResult = Join(arrKeys, "")
  18.    
  19.     ThisDocument.Content = strResult
  20.     MsgBox "OK"
  21. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-17 10:27 | 显示全部楼层

有劳lsdongjh 大驾光临,非常感谢!

运行了一下,重复的字符还是存在。我现在网速太慢,测试的附件粘不上来。

TA的精华主题

TA的得分主题

发表于 2018-4-17 11:27 | 显示全部楼层
ttkxssry 发表于 2018-4-17 10:27
有劳lsdongjh 大驾光临,非常感谢!

运行了一下,重复的字符还是存在。我现在网速太慢,测试的附件粘 ...

前面发错地方了。

运行前,200多万字
傲游截图20180417110720.png

运行后:3000多字
傲游截图20180417111429.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-17 12:27 | 显示全部楼层
lsdongjh 发表于 2018-4-17 11:27
前面发错地方了。

运行前,200多万字

不好意思,我是随手从诗词里复制了任意一段文字拷贝到新文档中进行测试的。该文档见附件。

其中,⊿,拍,等字符在运行完后,仍存在重复。


新建 Microsoft Word 文档.rar

11.74 KB, 下载次数: 3

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

本版积分规则

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

GMT+8, 2025-1-12 05:01 , Processed in 0.025885 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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