ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创并分享]新篇贺鸡年—《守柔WORD编程代码集》!

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-27 11:27 | 显示全部楼层
强烈感谢

TA的精华主题

TA的得分主题

发表于 2006-7-9 11:39 | 显示全部楼层
学习学习再学习,谢谢!!

TA的精华主题

TA的得分主题

发表于 2006-7-11 10:21 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-9 08:33 | 显示全部楼层

谢谢作者的无私奉献。收藏了。

TA的精华主题

TA的得分主题

发表于 2006-8-9 10:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-15 11:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-8-21 10:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

首先真诚谢谢作者的无私奉献。

我不懂VBA。近段时间对文章词频统计产生了兴趣。为此,将《守柔WORD编程代码集》中词频统计的宏源码化了好几天时间粘贴、整理到WORD,开始总是遇到“二义性错误”等提示,后来总算悟到两段代码不能同时使用,代码的位置也不能放错。反复修改后成功了。但,兴奋过后,利用WORD自带的查找替换功能计数后发现,部分词频统计不准确,特别是在处理一些长文档时。不准确的原因,可能部分是因为,某些双字词同时也含在多字词里,如“社会”一词也含在“社会主义”里,统计前者时,后者的计数就排除了,造成计数结果出现偏少的问题。之所以只说是可能仅仅是部分的原因,是因为守柔大哥给出的两个宏代码,都不能同时给出计数为1的词语,我无法验证含某个双字词的全部计数,故无法确认上述原因是否为不准确的全部原因。

请守柔大哥验证之。下面为我所用的测试文档和测试结果。

一个建议,这两个宏都只能列出“出现频次”大于等于2的字词。希望守柔大哥能修改为可列出“出现频次”大于等于1的字词。我曾将宏中
'首次写入文档变量时,其初始值为2 Me.Variables(i.Text).Value = 2
的2都改为1,不能成功。可见,我不懂VBA。

cXXHaFFB.rar (30.93 KB, 下载次数: 26)

TA的精华主题

TA的得分主题

发表于 2006-8-21 15:58 | 显示全部楼层

老大不在。暂写一个。

Sub aa()
Dim aword As Range
Dim astring As String, cstring As String

astring = ActiveDocument.Range
For Each aword In ActiveDocument.Words
    If aword <> " " And VBA.Asc(aword) <> 13 Then
        If InStr(1, cstring, aword & ":" & Chr(9)) Then
            '如果查到
        Else
            arr = Split(astring, aword)
            cstring = cstring & aword & ":" & Chr(9) & UBound(arr) & Chr(13)
        End If
    End If
Next
Documents.Add
Selection.InsertBefore cstring
End Sub

TA的精华主题

TA的得分主题

发表于 2006-8-22 20:27 | 显示全部楼层

谢谢热心又有本事的konggs版主!

已仔细测试。

代码写得很好,虽然我看不懂,只能拿来用。针对测试文档的执行结果确实好:
(1)准确(用WORD查找替换功能抽检了部分结果,无误);
(2)执行速度较快;
(3)新开一个文档显示结果好,可保持原文档不变;
(4)可显示各种中文字符的频次,包括单字和词。

TA的精华主题

TA的得分主题

发表于 2006-9-5 22:10 | 显示全部楼层

继续请教孔兄。多次测试中,发现孔兄编写的代码除前贴提到的诸多优点外,存在一个问题。

下为测试文档内容:
======
当时,镇守山海关的是明朝总兵吴三桂。关外是虎视眈眈的清兵,关内是风卷残去的农民军。何去何从,吴三桂犯难了。为抗击清兵,明朝在这里建筑了坚固的防御体系。吴三桂率“关宁铁骑”三万精兵镇守这里。山海关的有利地势,使吴三桂落到了历史天平上的砝码地位。李自成深知山海关的重要性,派唐通携带白银四万两,黄金千两,以封官许愿的敕书去招降吴三桂,此外,吴三桂的父亲吴襄也从京城给他写来了劝降信。而清军方面也从来没有放弃过对吴三桂的诱降,吴三桂的舅舅,叛将祖大寿从清营屡次给他写信,又是威逼,又是利诱,搞得吴三桂心里痒痒的。经过再三权衡,吴三桂决定投降农民军。吴三桂率部进京谒见李自成,抵达沙河驿时,突然而遇到从京城里逃出来的家人,说自己的爱妾陈圆圆被李自成的部将刘宗敏抢去占为已有。听说陈圆圆被掳走,吴三桂气得直发疯,他火速赶回山海关,袭击农民军。李自成一怒之下,押着吴襄,从北京亲自率军东征。

使用孔兄编写的代码得到的结果(已按频次排序):
=======
的:15/吴:14/三:14/桂:12/是:5/军:5/山海关:4/清:4/去:4/了:4/李自成:4/京:4/圆:4/农民:3/率:3/他:3/来:3/镇守:2/明朝:2/为:2/这里:2/万:2/两:2/襄:2/也:2/京城:2/给:2/写:2/信:2/而:2/过:2/将:2/又:2/得:2/说:2/陈:2/被:2/当时:1/总兵:1/关外:1/虎视眈眈:1/关内:1/风:1/卷:1/残:1/何去何从:1/犯难:1/抗击:1/在:1/建筑:1/坚固:1/防御:1/体系:1/宁:1/铁骑:1/精兵:1/有利:1/地势:1/使:1/落:1/到了:1/历史:1/天平:1/上:1/砝码:1/地位:1/深知:1/重要性:1/派:1/唐:1/通:1/携带:1/白银:1/四:1/黄金:1/千:1/以:1/封官许愿:1/敕:1/书:1/招降:1/此外:1/父亲:1/劝降:1/军方:1/面:1/从来:1/没有:1/放弃:1/对:1/诱降:1/舅舅:1/叛:1/祖:1/大:1/寿:1/营:1/屡次:1/写信:1/威逼:1/利诱:1/搞:1/心里:1/痒痒:1/经过:1/再三:1/权衡:1/决定:1/投降:1/率部:1/进:1/谒见:1/抵达:1/沙河:1/驿:1/突然:1/遇到:1/城里:1/逃:1/出来:1/家人:1/自己:1/爱:1/妾:1/刘:1/宗:1/敏:1/抢:1/占:1/已:1/听说:1/掳:1/走:1/气:1/直:1/发疯:1/火速:1/赶回:1/袭击:1/一怒之下:1/押:1/着:1/北京:1/亲自:1/东:1/征:1

在结果中,所有的字频得到了反映,但有相当一部分词没有统计出频率,如人名中只统计了李自成一词出现的次数。不知WORD是根据什么文件来统计词频的,是WORD是自带的词库(如微软拼音输入法词库)吗?

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

本版积分规则

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

GMT+8, 2024-11-17 00:47 , Processed in 0.048734 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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