Excel精英培训网

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

[已解决]单个单元格内 要替换多个文本怎么弄? 求大神

[复制链接]
发表于 2015-4-24 14:05 | 显示全部楼层 |阅读模式
本帖最后由 Mahdi 于 2015-4-24 15:33 编辑

单个单元格内 要替换多个文本怎么弄? 求大神
没有办法上传附件 只能这样了。

例如我有一个单元格内容如下
0302,0304,0401,0307,0310,0401,0402

要把单元格内的数字内容  用公式  替换成下面数字对应的 文字内容
0302
消化内科专业
0303
神经内科专业
0304
心血管内科专业
0305
血液内科专业
0306
肾病学专业
0307
内分泌专业
0308
免疫学专业
0309
变态反应专业
0310
老年病专业
0311
其他
0312
重症监护(内科)
04
外科
0401
普通外科专业
0402
神经外科专业
0403
骨科专业

最佳答案
2015-4-24 16:00
Sub Click()
    Dim A, B, d, i, j
    A = Range("c2:d" & Range("c65536").End(xlUp).Row)
    Set d = CreateObject("scripting.dictionary")
    For i = 1 To UBound(A)
        d(CStr(A(i, 1))) = A(i, 2)
    Next i

    A = Range("a1").CurrentRegion
    For i = 2 To UBound(A)
        B = VBA.Split(A(i, 1), Chr(41900))
        For j = 0 To UBound(B)
            B(j) = d(CStr(B(j)))
        Next j
        A(i, 1) = VBA.Join(B, Chr(41900))
    Next i
    [f1].Resize(UBound(A)) = A
End Sub
替换案例2.rar (20.08 KB, 下载次数: 14)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2015-4-24 14:08 | 显示全部楼层
因为要替换的 列里面 有很多 都是 这样的数字内容  手动 替换 太花时间了。。求大神帮忙
回复

使用道具 举报

发表于 2015-4-24 14:10 | 显示全部楼层
上傳附檔.用一般的引用公式就可以了.常用VLOOKUP.
回复

使用道具 举报

 楼主| 发表于 2015-4-24 14:40 | 显示全部楼层
心正意诚身修 发表于 2015-4-24 14:10
上傳附檔.用一般的引用公式就可以了.常用VLOOKUP.

附件点了  上传不了。。一上传就是空的。

  在单个单元格内 有多项内容要替换。。如果 用VLOOKUP  会匹配不上的吧。
回复

使用道具 举报

 楼主| 发表于 2015-4-24 15:33 | 显示全部楼层
有没有人帮忙看一下 怎么弄才行啊。。 谢谢大神们了。。 应该会用到VBA的吧。

替换案例.rar

11.14 KB, 下载次数: 4

回复

使用道具 举报

发表于 2015-4-24 16:00 | 显示全部楼层    本楼为最佳答案   
Sub Click()
    Dim A, B, d, i, j
    A = Range("c2:d" & Range("c65536").End(xlUp).Row)
    Set d = CreateObject("scripting.dictionary")
    For i = 1 To UBound(A)
        d(CStr(A(i, 1))) = A(i, 2)
    Next i

    A = Range("a1").CurrentRegion
    For i = 2 To UBound(A)
        B = VBA.Split(A(i, 1), Chr(41900))
        For j = 0 To UBound(B)
            B(j) = d(CStr(B(j)))
        Next j
        A(i, 1) = VBA.Join(B, Chr(41900))
    Next i
    [f1].Resize(UBound(A)) = A
End Sub
替换案例2.rar (20.08 KB, 下载次数: 14)
回复

使用道具 举报

 楼主| 发表于 2015-4-27 09:07 | 显示全部楼层
爱疯 发表于 2015-4-24 16:00
Sub Click()
    Dim A, B, d, i, j
    A = Range("c2:d" & Range("c65536").End(xlUp).Row)

感谢大神!!!{:091:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 15:04 , Processed in 0.288946 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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