ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助]Word 中怎样实现中文、半角字符间自动加一个空格

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-3 14:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用northwolves在2007-8-3 13:46:37的发言:

Sub macro1()
ActiveDocument.Content.Find.Execute "^w", , , , , , , , , " ", wdReplaceAll
ActiveDocument.Content.Find.Execute "([一-龥])[ ]([一-龥])", , , True, , , , , , "\1\2", wdReplaceAll
'ActiveDocument.Content.Find.Execute "([^1-^127])[ ]([^1-^127])", , , True, , , , , , "\1\2", wdReplaceAll
ActiveDocument.Content.Find.Execute "([一-龥])([^1-^127])", , , True, , , , , , "\1 \2", wdReplaceAll
ActiveDocument.Content.Find.Execute "([^1-^127])([一-龥])", , , True, , , , , , "\1 \2", wdReplaceAll

End Sub

这个程序,运行一次后会在数字与中文之间不判断直接添加空格,造成数字与中文之间原本正确的空有一格,变成空了两格。并且,它能自动在中文英文相遇顺序时加空却不能在英文中文相遇顺序时加空。

为什么呀?

TA的精华主题

TA的得分主题

发表于 2007-8-3 14:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
[^1-^127] 匹配所有的数字或空格

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-3 15:12 | 显示全部楼层
QUOTE:
以下是引用northwolves在2007-8-3 14:52:36的发言:
[^1-^127] 匹配所有的数字或空格

哦。这个程序是不是不对文本本身内容进行判断,直接将符合条件的情况加空格了,所以才会出现正常文本在程序运行一次后反而成了两个空格啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-3 15:15 | 显示全部楼层
QUOTE:
以下是引用sylun在2007-8-2 10:55:28的发言:

请测试如下代码是否可行:

Sub test()
'假设最终文档没有两个以上连续的半角空格
    Application.ScreenUpdating = False
    Dim myfindtext() As Variant, myreplacetext() As Variant, i As Integer
    myfindtext = Array("([^32-^127])([一-龥])", "([一-龥])([^32-^127])", "^32{2,}", _
        "([一-龥])\(", "([一-龥])(\))", "\(([一-龥])", "(\))([一-龥])")
    myreplacetext = Array("\1^32\2", "\1^32\2", "^32", "\1^32(", "\1^32\2", "(^32\1", "\1^32\2")
    For i = 0 To UBound(myfindtext)
        With ActiveDocument.Content.Find
            .ClearFormatting
            .MatchWildcards = True
            .Execute findtext:=myfindtext(i), replacewith:=myreplacetext(i), Replace:=wdReplaceAll
        End With
    Next
    Application.ScreenUpdating = True
End Sub


能不能在这个程序的什么地方添加什么语句,让其输出错误报告啊?

TA的精华主题

TA的得分主题

发表于 2007-8-3 15:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用Violet_trans在2007-8-3 13:29:52的发言:

第一种情况,我列举的是未运行程序前出现的,欲修正的情况(不过,我觉得吧,那两种都可以忽略不计,不能让 QA 什么格式问题都不管吧!?)

http://club.excelhome.net/dispbbs.asp?boardid=23&replyid=776549&id=228840&page=1&skin=0&Star=1这个帖子上所提供的程序,大概是处理全英文文本的吧,但处理中英文结合的文本时,结果有些差异。当中英文之间有多个英文单词时,且连续两个单词都出现错误时,程序运行结果就不合英文语法了。

举例来说,如果文本是这样的:人民共和 te st
    
te
    
st
    

那么运行后,结果为:人民共和 test te st

如果再次运行,则变为:人民共和  te  st test 

直到的三次:人民共和  test test 国

但是对于“System z 系列总经理 J im Stal lings 说道”,则完全不管用(人名不好判断,是么?)

我想,干脆就忽略掉这个半角字符之间空不空格的问题吧。反正它也没多重要。您看,能不能在您先前给出的程序基础上,加上语句实现中文字符间无空格,然后,更正,/并输出报告?

提到的尝试更正英文拼写错误的程序只是一个练习,应该还有些问题的。刚才我用该程序检查过上面的例子,前一个如楼主所述,但第二个中人名间标示的两空格还是可以删除。感觉上,对人名及其他专有名词的判断有赖于word的词典,所以无法估计命中率。当时考虑的是假如无法更正时希望能原样复原,就这点,原程序还确实不能绝对保证。

实现中文字符间无空格应是较简单的,但所指的中文字符包括中文标点吗?

至于输出报告,报告的内容包括哪些?是输出到新文档吗?有没有格式要求?

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-3 16:02 | 显示全部楼层

包括中文标点,输出报告应该没什么要求,就是可能会挨个处理多个文件(因为我们做翻译,往往每次来的都是一批文件。),所以,希望它能够添加记录而不是覆盖。每次创建报告时,如果能问一下用什么名字保存就好了。其它没什么。报告输出的格式没有要求,只要表明某个文件的某词空格不当,最后统计一下,该文件出现同样错误多少个就OK了!!

【我真是眼泪水、鼻涕水一大把啊!昨天发烧38.5度,看到您的回复,我像打了青霉素!!】

TA的精华主题

TA的得分主题

发表于 2007-8-3 17:40 | 显示全部楼层
QUOTE:
以下是引用Violet_trans在2007-8-3 16:02:30的发言:

包括中文标点,输出报告应该没什么要求,就是可能会挨个处理多个文件(因为我们做翻译,往往每次来的都是一批文件。),所以,希望它能够添加记录而不是覆盖。每次创建报告时,如果能问一下用什么名字保存就好了。其它没什么。报告输出的格式没有要求,只要表明某个文件的某词空格不当,最后统计一下,该文件出现同样错误多少个就OK了!!

【我真是眼泪水、鼻涕水一大把啊!昨天发烧38.5度,看到您的回复,我像打了青霉素!!】

是否只报告中文字符间出现空格的情况?“某词”不好学掌握,用“某页某行某字与某字之间空格不当”注明可以吗?还有,页与行是以修改前还是修改后的文档来参照?“同样错误”的“同样”是以什么为参照?还是指中文字符间出现空格的情况总共出现了多少次?

其实,这样的处理我还没做过,不知能否做出来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-3 17:56 | 显示全部楼层

无妨,无妨!您愿意尝试,就是给我最大的帮助了!!

报告中,不止报告中文字符间多余空格,只要是多余空格,就报告出来,最后统计,就好了。用“某页某行某字与某字之间空格不当”注明当然可以,但怕没有参照物,您任选吧,哪个方便就选哪个,程序里注释一下就好了。同样错误,指的就是所有多余空格的问题。包括中文字符间不该有空格的情况,也包括中英文字符间少了或者多了空格的情况。其实如果不好输出,笼统的累数就好了。QA一般只要知道有多少处空格型的错误就可以了。所以,只要累数出来,就OK。(可能的话,输出到 Excel 更好!)呵呵~有点贪得无厌哈……

此外可以在执行初选择修改还是不修改吗?因为QA是不修改只累数的,但翻译是要修改的。当然,您放手去试!任意结果都可以!!(感激啊!!真是好银呐!!)

PS:此程序完工、调试结束后,您可以将之发布到一些译员论坛中。呵呵~绝对是国内的一项创举!我不确定国外有人做了。因为本地化主要是英文本地化成其它语言。

[此贴子已经被作者于2007-8-3 18:10:40编辑过]

TA的精华主题

TA的得分主题

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

初步做了一个,因没有实际样本,只是以附件本身来测试。应该还有些问题,如全角字符的判断。运行速度也较慢。

对Excel表格的操作还不很了解,只生成Word版报告,请楼主先测试看看如何。

Ig4buni0.rar (23.43 KB, 下载次数: 28)

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-6 09:17 | 显示全部楼层

 太酷了!!!!!

sylun!!给我签名吧!!!!我要做你的 Fans!!!

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

本版积分规则

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

GMT+8, 2024-11-24 14:10 , Processed in 0.050622 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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