设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 15819|回复: 11
打印 上一主题 下一主题

请教:在word中对选定范围查找替换(VBA)、等距空格替换Tab,万分感谢!

[复制链接]
跳转到指定楼层
1#
发表于 2008-10-31 07:59:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
工作需要如下两个功能,奈何自己完全不懂VBA,只能通过录制和修改来创建最简单的宏,尝试了很多办法还是没法解决,希望高手能赐教,万分感谢!!

一:将选定的若干段落转换为如下格式:每段的第一句文字前添加4个空格+2个中横线+1个空格;每个句末以回车分行;除每段第一个句子外的所有句子,在文字前添加7个空格。例如:

原文:

    何为沽空 ...

    沽空是指预期未来行情下跌,将股票按目前价格卖出,待行情下跌后买进,获利差价利润,即:高卖低买。具体的操作方法有两种,1)首先要支付一定的利息从别人那儿借到股票然后卖出去。2)根本先卖,然后在规定的一段时间内借到股票。后者称裸沽空。试想在买卖双方的较量中,买方要拿出真金白银,即便是有融资的可能也得拿出至少20%-30%的资金,而沽空者则需付出利息,或只要有胆吆喝一声。在大跌市中很多时候还没等到要出去借股票,股票已经跌到有丰厚的利润,那时只要低位买进即可。无本生意,无人可敌。雷曼兄弟破产后目前裸沽空在美国被禁。美国一度禁止对大多数金融机构普通意义上的沽空,但现在已经恢复,因此十月八日和九日美国的股市又血流成河,直到全球联联手救援活动启动才稍稍喘定。
    何为信贷违约掉期 ...

    是一种贷款违约保险。它出现的本义为了让银行转移信贷风险。A 公司向 B 银行借款,银行赚取利息,但也有风险。约九十年代中为银行贷款提供保险的产品出现了,名为信贷违约掉期(Credit Default Swap,简称 CDS)。


转换后:(从word中copy过来,因此是基于word中的宽度进行分行的,每句前均有7个空格)

    -- 何为沽空
       沽空是指预期未来行情下跌,将股票按目前价格卖出,待行情下跌后买进,获利差价利润,即:
       高卖低买。具体的操作方法有两种,1)首先要支付一定的利息从别人那儿借到股票然后卖出去。
       2)根本先卖,然后在规定的一段时间内借到股票。后者称裸沽空。试想在买卖双方的较量中,买
       方要拿出真金白银,即便是有融资的可能也得拿出至少20%-30%的资金,而沽空者则需付出利
       息,或只要有胆吆喝一声。在大跌市中很多时候还没等到要出去借股票,股票已经跌到有丰厚的
       利润,那时只要低位买进即可。无本生意,无人可敌。雷曼兄弟破产后目前裸沽空在美国被禁。
       美国一度禁止对大多数金融机构普通意义上的沽空,但现在已经恢复,因此十月八日和九日美国
       的股市又血流成河,直到全球联联手救援活动启动才稍稍喘定。
    -- 何为信贷违约掉期
    -- 是一种贷款违约保险。它出现的本义为了让银行转移信贷风险。A 公司向 B 银行借款,银行赚
       取利息,但也有风险。约九十年代中为银行贷款提供保险的产品出现了,名为信贷违约掉期
       (Credit Default Swap,简称 CDS)。


二:将表格(word/excel表格均有/均可)转换为文字并对齐,但不能使用tab键,只能使用空格键(系统要求,没有办法),如:

原文:(请查看附件的word文档中的表格)


部门营收                        
机身系统    $484.8    $434.3    11.6%    $1,470.2    $1,329.2    10.6%
推进系统    $291.5    $278.9    4.5%    $863.1    $798.5    8.1%
机翼系统    $246.8    $251.5    (1.9%)    $773.5    $738.1    4.8%
其他所有部门    $4.1    $2.8    46.4%    $18.9    $14.6    29.5%
部门营收总额    $1,027.2    $967.5    6.2%    $3,125.7    $2,880.4    8.5%

转换后:(以空格键隔开对齐)

部门营收
机身系统            $484.8     $434.3    11.6%     $1,470.2   $1,329.2   10.6%
推进系统            $291.5     $278.9    4.5%      $863.1     $798.5     8.1%
机翼系统            $246.8     $251.5   (1.9%)     $773.5     $738.1     4.8%
其他所有部门         $4.1       $2.8      46.4%     $18.9      $14.6      29.5%
部门营收总额         $1,027.2   $967.5    6.2%      $3,125.7   $2,880.4   8.5%


这两个问题困扰了我很久,但是想了很多办法也没有解决。

第一个问题通过如下步骤录制宏部分解决:

1、删除所有4个空格(查找-替换);
2、将所有的2个回车替换为1个回车(删除多余行);
3、将所有一个回车替换为一个回车加4个空格+2个中横线+1个空格("^p"==>>"^p    -- ");
4、将光标移至第二行,
5、添加7个空格,鼠标右移一个字符(否则在段落之间会出问题),将光标移动至句末,添加1个回车(^p);
6、重复5.

但是我不知如何控制这些步骤使其在一个文档中只针对选定的段落运行。目前采用的是最笨的办法:1、2、3、全文运行,5重复150次(笨到将代码粘贴150遍),这样每次新开一个文档,将需要做成如此格式的段落粘贴入新文档,一次可处理150行(通常不需要这么多),再复制粘贴回原文档。这样做不但麻烦,而且多次复制粘贴增大了出错的机会。

第二个问题我一筹莫展。在网上找了很久用等距离空格替换tab的方法,有类似TabConvertSpa之类的软件,但是处理中文都成了乱码。或者,是否可以在excel中,在选中自动换行时,判断单元格的宽度,并在每个换行处插入一个回车,并将字符不足填充单元格时添加等量空格填充完毕?

附件是这两个问题的示意。

恳请大侠帮忙,万分感谢!我在北京,因此,如果您在北京,愿大餐重谢 [:20]

[ 本帖最后由 Derek@BJ 于 2008-10-31 08:01 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-10-31 16:25:26 | 只看该作者
查找:输入空格
替换为:^t
3#
 楼主| 发表于 2008-10-31 22:58:00 | 只看该作者

回复 2# 的帖子

谢谢回复,不过我要的正是空格,不能有^t

点击这里给我发消息

4#
发表于 2008-11-1 12:27:21 | 只看该作者
查找和替换为倒过来
5#
 楼主| 发表于 2008-11-3 21:46:50 | 只看该作者
原帖由 pureshadow 于 2008-11-1 12:27 发表
查找和替换为倒过来


谢谢,不过我需要的是与原有tab键等距离的空格数,以使原有表格中的数据依旧对齐。并不是简单地将一个tab键替换为一个空格,或者将一个tab键替换为固定数目的空格。

点击这里给我发消息

6#
发表于 2008-11-3 23:42:02 | 只看该作者
空格不可能做到完全对齐,只有TAB才可以。
不信你试试:
查找^t
替换为N个空格。

[ 本帖最后由 pureshadow 于 2008-11-3 23:50 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
 楼主| 发表于 2008-11-5 22:44:30 | 只看该作者
原帖由 pureshadow 于 2008-11-3 23:42 发表
空格不可能做到完全对齐,只有TAB才可以。
不信你试试:
查找^t
替换为N个空格。


表格中的一列数据差别可能很大,比如6列数据,在第8行的时候都是12位数字(例如 234,345,344,345),到第21行的时候全部是5位(例如 23.45%),这种情况下用固定数目的空格键替换Tab键,结果完全是乱的。

我工作中使用的word (结合excel)包含了将表格转换为文字、并且用空格键分隔对齐的macros,但不是中国人做的,做英文有效,做中文乱码。而且这部分macros全部密码保护,所以我没有办法得知它是如何实现的。

谢谢![:24]

点击这里给我发消息

8#
发表于 2008-11-6 00:04:12 | 只看该作者
不是什么都需要用宏的,这种小问题,完全没有必要用宏。
用TAB就可以很好地解决这个问题:
在标尺上点制表符,需要断开的地方用TAB键分隔。

[ 本帖最后由 pureshadow 于 2008-11-6 00:07 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
9#
发表于 2008-11-6 10:56:25 | 只看该作者
Word里有很好的功能来实现楼主想要的两个效果,为何非要用空格?舍弃简便而使用复杂的方法是不可取的。
10#
 楼主| 发表于 2008-11-12 06:28:07 | 只看该作者
原帖由 ahan_zl 于 2008-11-6 10:56 发表
Word里有很好的功能来实现楼主想要的两个效果,为何非要用空格?舍弃简便而使用复杂的方法是不可取的。


兄弟,不是我想用空格,而是我的工作要求是这样的。不用空格系统不认,这一点我没有权限更改,虽然听起来很变态(做起来也是),但是只能适应。。。[:24]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-26 01:57 , Processed in 0.252701 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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