- 积分
- 24
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
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 |
|