ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

Word小练习

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-7 06:42 | 显示全部楼层 |阅读模式
这是摘自金山词霸中的网站与网址,想一下,Word中如何处理以下问题: 综合类与门户类 新 浪 网:http://www.sina.com.cn 雅虎搜索:http://cn.yahoo.com 中华网:http://www.china.com 第九城市:http://www.the9.com 中央电视台:http://www.cctv.com 联众游戏:http://www.ourgame.com 搜狐:http://www.sohu.com 联想FM365:http://www.fm365.com 亿唐:http://www.etang.com 广州视窗:http://www.gznet.com 首都在线:http://www.263.net 网易:http://www.163.com 天极网:http://www.yesky.com 中国人:http://www.chinaren.com tom.com:http://www.tom.com Lycos中国:http://www.lycos.com.cn 易趣-网上竞拍:http://eachnet.com/ 百度搜索:http://www.baidu.com/ 人民网:http://www.people.com.cn 深圳之窗:http://www.szptt.net.cn 可乐吧kele8:http://www.kele8.com Yahoo:http://www.yahoo.com QQ163音乐网:http://qq163.com 腾讯QQ:http://www.tencent.com google搜索:http://www.google.com 新华网:http://www.xinhuanet.com 碧海银沙:http://www.yinsha.com 中国同学录:http://www.5460.net 黄金书屋:http://www.goldnets.com 域名-虚拟主机:http://www.25000.net 1:分列,要求分成两列,第一列宽度为4厘米,第二列文字左对齐,无框线(注意,不要被文字描述所迷惑) 2:将所有网址变成超级链接形式。 3:如果使用VBA,你会怎么将它们变为超级链接? 说明:快速及时正确高效回复者,可以加分哟,大家来试一下。 见附件 UbLi8dad.rar (2.88 KB, 下载次数: 42)

TA的精华主题

TA的得分主题

发表于 2006-3-7 09:30 | 显示全部楼层
占个位。 关键有一步没做出: 1、先在每个地址前面放个空域,如:{ 123 } (以上都能顺利完成。但下面) 2、查找:(:*)(123)(*)(http://*)^13 替换为:\1\4\3^13 但是,第二步替换后的域是个有意思的东东, 他不是一般的域了(因为一般是一对的域符号,是一个整体,他却是一个两个个体,而且不可能一起选中他们)。 我是这样认为的:: 1、通过^21能查到。 2、但是activedocument.fileds(1).select却又找不到。
[此贴子已经被作者于2006-3-7 14:44:23编辑过]

TA的精华主题

TA的得分主题

发表于 2006-3-7 12:52 | 显示全部楼层
我来试试看 1. 选中所有网站和网址,以“:”为分隔符将文本转为二列的表格。 2. 按要求设置第一列宽度为4厘米,第二列为无边框左对齐。 3. 超链接还是用VBA比较方便,运行以下代码实现 Sub test() Dim Cnum As Integer, i As Integer Dim Rstart As Integer, Rend As Integer Cnum = Me.Tables(1).Columns(2).Cells.Count For i = 1 To Cnum Rstart = Me.Tables(1).Columns(2).Cells(i).Range.Start Rend = Me.Tables(1).Columns(2).Cells(i).Range.End - 1 Me.Hyperlinks.Add Anchor:=Me.Range(Rstart,Rend),Address:=Me.Range(Rstart, Rend).Text Next i End Sub TZUZgkWq.rar (10.04 KB, 下载次数: 18)

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-20 06:55 | 显示全部楼层

呵呵,观者如云和者稀,吾心也凄。 1:分列,要求分成两列,第一列宽度为4厘米,第二列文字左对齐,无框线(注意,不要被文字描述所迷惑) 直接使用查找与替换即可。 2:将所有网址变成超级链接形式。 使用格式/自动套用格式即可。 3:如果使用VBA,你会怎么将它们变为超级链接?

Option Explicit
Sub AddHyperLinks()
Dim i As Paragraph, myRange As Range
Dim KeyPosition As Long
Application.ScreenUpdating = False
With ActiveDocument
For Each i In .Paragraphs
Set myRange = i.Range
With myRange
KeyPosition = VBA.InStr(.Text, "http://")
If KeyPosition > 0 Then
.SetRange .Start + KeyPosition - 1, .End - 1
.Hyperlinks.Add Address:=.Text, Anchor:=myRange
End If
End With
Next
End With
Application.ScreenUpdating = True
End Sub

[此贴子已经被作者于2006-3-20 6:59:20编辑过]
arXKuf0x.bmp
vJMRymW3.bmp
FRaxjEFo.bmp

TA的精华主题

TA的得分主题

发表于 2006-3-20 08:05 | 显示全部楼层

受教了。

辛苦老大了。

我来加个注秋吧。老本行了。

Sub AddHyperLinks()
Dim i As Paragraph, myRange As Range
Dim KeyPosition As Long

Application.ScreenUpdating = False '关闭屏幕更新
With ActiveDocument
For Each i In .Paragraphs '在段落间循环
Set myRange = i.Range '设置myrange就是所在段落
With myRange
KeyPosition = VBA.InStr(.Text, "http://") '第1次出现http的位置,例如7,8,返回是数值
'MsgBox KeyPosition
If KeyPosition > 0 Then '如果大于0,即找到,存在。
.SetRange .Start + KeyPosition - 1, .End - 1 '重新定义myrange区域为http://至结束,除段落标记以外
.Hyperlinks.Add Address:=.Text, Anchor:=myRange '添加hyperlinks域,域文字为.text即http://至结束,锚定为重新定义的myrange
End If
End With
Next
End With
Application.ScreenUpdating = True '开启屏幕更新
End Sub

TA的精华主题

TA的得分主题

发表于 2012-10-31 09:27 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 15:47 , Processed in 0.030556 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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