爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 571|回复: 3
收起左侧

[原创] Word编辑公交路线的宏代码

[复制链接]
发表于 2005-10-14 15:55:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
最近学了学VBA,顺便做了个格式化公交路线数据的宏代码,可以用来格式化上海的公交数据,贴上来给大家做参考,学会了自己稍微改改就能就该任意地方的公交路线了。
原始数据要求: 我是从网站上考下来的原始数据,原始数据格式如下
    01线 南泉新村[换行符]
    6:00-23:00 桃浦公路[换行符]
    5:30-22:30 南泉新村、仁济东院(上行单向)、宁阳路、浦电路、第一八佰伴、东方医院、浙江中路、石门一路、陕西北路、华山路、镇宁路、延安西路、愚园路、白玉路(下行武宁新村)、上海西站、桃浦公路 [换行符]
格式化后:
    01线南泉新村、仁济东院(上行单向)、宁阳路、浦电路、第一八佰伴、东方医院、浙江中路、石门一 路、陕西北路、华山路、镇宁路、延安西路、愚园路、白玉路(下行武宁新村)、上海西站、桃浦公路  @ 南泉新村6:00-23:00  桃浦公路

跟上面的原始数据不一样格式的数据是不能用下面的宏代码格式化的,要修改宏代码才行!!!
——————————————————
      时间有限,没有做出来完美的代码,现在只能是先选中一条线路,然后运行宏,就得到Busquery要求的数据格式。都格式化后,用替换操作把“、”替换成“*”就可以了当然可以一步格式化所有的线路,不会太麻烦,但是我没做:)


注意:本段宏代码不通用,仅作参考。!!!



宏代码如下:
Sub PPFormat()
'
' PPFormat Macro
' ºêÔÚ 2005Äê10ÔÂ13ÈÕÐÇÆÚËÄ ÓÉ User ´´½¨
'
    Dim LineArray(10, 6) As String
    Dim LineNum As Integer
    Dim temp As String
    Dim Array2(1) As String

    Set SP = Selection.Paragraphs
    LineNum = SP.Count
    If (LineNum / 3) - (LineNum \ 3) <> 0 Then
        mb = MsgBox("选择的行数不正确!", vbCritical, "Error...")
        End
    End If
   
        temp = Trim(Selection.Paragraphs(1))
         LineArray(0, 0) = Trim(Split(temp)(0))
         LineBreak = Right(Split(temp)(1), 1)
         LineArray(0, 1) = Trim(Left(Split(temp)(1), (Len(Split(temp)(1)) - 1)))
         
        temp = Trim(Selection.Paragraphs(2))
         LineArray(0, 2) = Trim(Split(temp)(0))
         LineArray(0, 3) = Trim(Left(Split(temp)(1), (Len(Split(temp)(1)) - 1)))

        temp = Trim(Selection.Paragraphs(3))
         LineArray(0, 4) = Trim(Left(temp, 11))
         temp = Trim(Right(temp, (Len(temp) - 11)))
         temp = Left(temp, Len(temp) - 1)
         LineArray(0, 5) = temp
         Dim FormatedLine As String
         FormatedLine = LineArray(0, 0) & " *" & LineArray(0, 5) & " @ " & LineArray(0, 1) & LineArray(0, 2) & "  " & LineArray(0, 3) & LineArray(0, 4)
         Selection.Range.Text = FormatedLine & LineBreak

End Sub
发表于 2005-10-14 19:53:03 | 显示全部楼层
顶楼主一个。
其实Word里边的"查找/替换"功能本身就很强,使用通配符后也可以实现上述功能。
具体操作请看Office的帮助文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-16 13:39:15 | 显示全部楼层
"查找/替换"做不了这么多工作的,替换符号倒是小问题,麻烦的是要调整字段的顺序,比如说把原始数据里面的首末班车时间移到最后面。每条线路都要移动,没有现成的功能,手动操作非常非常繁琐
回复 支持 反对

使用道具 举报

发表于 2005-10-16 15:11:08 | 显示全部楼层
以换行符为标记把文本转换成表格,然后调整列的顺序,加列加间隔*号@号等符号,再转回文本,这样如何呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-6-24 23:27

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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