Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3317|回复: 4

[已解决]如何拆分地址

[复制链接]
发表于 2015-4-7 21:16 | 显示全部楼层 |阅读模式
本帖最后由 dyzx 于 2015-4-9 11:49 编辑

将表1拆分成表2的格式,多谢老师指教,多谢
最佳答案
2015-4-8 10:09
3楼基础上稍微改了一下,加了自治区、直辖市的判断,并最多可4级显示
  1. Sub test()
  2.     Dim str As String
  3.     Dim arr
  4.     arr = Sheet1.Range("a1:g" & Sheet1.[A65536].End(3).Row)
  5.     For x = 2 To UBound(arr)
  6.         str = arr(x, 4): arr(x, 4) = ""
  7.         If str <> "" Then
  8.             str = Split(str, " ")(1)
  9.             If InStr(str, "省") Then arr(x, 4) = Split(str, "省")(0) & "省": str = Split(str, "省")(1)
  10.             If InStr(str, "自治区") Then arr(x, 4) = Split(str, "自治区")(0) & "自治区": str = Split(str, "自治区")(1)
  11.             If InStr("上海重庆北京天津", Left(str, 2)) Then arr(x, 4) = Left(str, 3): str = Mid(str, 4)
  12.             
  13.             If InStr(str, "市") Then arr(x, 5) = Split(str, "市")(0) & "市": str = Split(str, "市")(1)
  14.             c = IIf(arr(x, 5) <> "", 6, 5)
  15.             If InStr(str, "县") Then arr(x, c) = Split(str, "县")(0) & "县": str = Split(str, "县")(1)
  16.             If InStr(str, "区") Then arr(x, c) = Split(str, "区")(0) & "区": str = Split(str, "区")(1)
  17.             c = IIf(arr(x, 6) <> "", 7, 6)
  18.             If InStr(str, "镇") Then arr(x, c) = Split(str, "镇")(0) & "镇"
  19.         End If
  20.     Next x
  21.     Sheet2.Range("a1").Resize(UBound(arr), 7) = arr
  22. End Sub
复制代码

信息.rar

18.22 KB, 下载次数: 16

发表于 2015-4-7 21:25 | 显示全部楼层
本帖最后由 1091126096 于 2015-4-7 21:29 编辑

数据分列
0012.gif
回复

使用道具 举报

发表于 2015-4-7 22:55 | 显示全部楼层
信息.rar (34.32 KB, 下载次数: 33)
回复

使用道具 举报

发表于 2015-4-8 10:09 | 显示全部楼层    本楼为最佳答案   
3楼基础上稍微改了一下,加了自治区、直辖市的判断,并最多可4级显示
  1. Sub test()
  2.     Dim str As String
  3.     Dim arr
  4.     arr = Sheet1.Range("a1:g" & Sheet1.[A65536].End(3).Row)
  5.     For x = 2 To UBound(arr)
  6.         str = arr(x, 4): arr(x, 4) = ""
  7.         If str <> "" Then
  8.             str = Split(str, " ")(1)
  9.             If InStr(str, "省") Then arr(x, 4) = Split(str, "省")(0) & "省": str = Split(str, "省")(1)
  10.             If InStr(str, "自治区") Then arr(x, 4) = Split(str, "自治区")(0) & "自治区": str = Split(str, "自治区")(1)
  11.             If InStr("上海重庆北京天津", Left(str, 2)) Then arr(x, 4) = Left(str, 3): str = Mid(str, 4)
  12.             
  13.             If InStr(str, "市") Then arr(x, 5) = Split(str, "市")(0) & "市": str = Split(str, "市")(1)
  14.             c = IIf(arr(x, 5) <> "", 6, 5)
  15.             If InStr(str, "县") Then arr(x, c) = Split(str, "县")(0) & "县": str = Split(str, "县")(1)
  16.             If InStr(str, "区") Then arr(x, c) = Split(str, "区")(0) & "区": str = Split(str, "区")(1)
  17.             c = IIf(arr(x, 6) <> "", 7, 6)
  18.             If InStr(str, "镇") Then arr(x, c) = Split(str, "镇")(0) & "镇"
  19.         End If
  20.     Next x
  21.     Sheet2.Range("a1").Resize(UBound(arr), 7) = arr
  22. End Sub
复制代码

评分

参与人数 1 +2 收起 理由
dyzx + 2 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-4-9 11:50 | 显示全部楼层
grf1973 发表于 2015-4-8 10:09
3楼基础上稍微改了一下,加了自治区、直辖市的判断,并最多可4级显示

就是要这个效果,非常多谢grf1973 老师。
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 16:01 , Processed in 0.542035 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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