Excel精英培训网

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

[已解决]请教下vba 宏 Replace 通配符为什么不管用啊

[复制链接]
发表于 2016-4-14 21:33 | 显示全部楼层 |阅读模式
x = Replace(Cells(1, "a"), "*~?", "")
Cells(1, "b") = x

a1 是http://www.baidu.com/?555, 我想替换后剩下555,但是替换后还是原来内容,请教下这是怎么回事啊
最佳答案
2016-4-15 21:59
'如果肯定含"?"
Sub test()
    Dim x, y
    x = "http://www.baidu.com/?555"
    y = VBA.InStrRev(x, "?")
    x = Mid(x, y + 1)
End Sub


你的是咋解决的
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-4-14 22:29 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-4-14 22:45 | 显示全部楼层
本帖最后由 水中游 于 2016-4-15 19:51 编辑
dsmch 发表于 2016-4-14 22:29
Cells(1, "a").Replace "*~?", ""

再请教下,能不能不直接替换a1内容,而是把a1读取到变量,再用replace处理变量呢?
比如:
变量=cells(1,"a")
x=Replace(变量, "*~?", "")

我这么弄得,但是这样,替换后内容没有变,有办法替换变量内容吗
回复

使用道具 举报

发表于 2016-4-15 08:14 | 显示全部楼层
变量=celss(1,"a")
至少这个拼写有问题吧 .
单步运行,检查一下变量是否按你预设的在变化.

评分

参与人数 1 +1 收起 理由
水中游 + 1 确实写错了,谢谢

查看全部评分

回复

使用道具 举报

发表于 2016-4-15 08:52 | 显示全部楼层
Sub test()
    Cells(1, "a") = "http://www.baidu.com/?555"
    Cells(2, "a") = Replace(Cells(1, "a"), "?", "")
End Sub



直接替换问号就可以了呀

评分

参与人数 1 +1 收起 理由
水中游 + 1 可是我想替换结果是只剩555啊

查看全部评分

回复

使用道具 举报

发表于 2016-4-15 15:18 | 显示全部楼层
本帖最后由 dsmch 于 2016-4-15 19:57 编辑
水中游 发表于 2016-4-14 22:45
再请教下,能不能不直接替换a1内容,而是把a1读取到变量,再用replace处理变量呢?
比如:
变量=celss( ...


对象.replace 属于方法,相当于菜单中的替换,可以使用通配符
replace 是函数,不能使用通配符,楼主的问题用定则表达式解决最好
Sub Macro2()
With CreateObject("vbscript.regexp")
.Pattern = "\d+$" '和词尾相连的数字
.Global = True
Set ms = .Execute([a1].Value)
If ms.Count > 0 Then [b1] = ms(0)
End With
End Sub

评分

参与人数 1 +1 收起 理由
水中游 + 1 好复杂啊,我记下来慢慢看,非常感谢

查看全部评分

回复

使用道具 举报

发表于 2016-4-15 19:53 | 显示全部楼层
变量里会不会有多个问号?
回复

使用道具 举报

 楼主| 发表于 2016-4-15 20:37 | 显示全部楼层
爱疯 发表于 2016-4-15 19:53
变量里会不会有多个问号?

有的有多个问号的
回复

使用道具 举报

发表于 2016-4-15 21:46 | 显示全部楼层
最好列举一下各种情况的结果,以免漏掉什么,或者免得重新想新办法
回复

使用道具 举报

 楼主| 发表于 2016-4-15 21:50 | 显示全部楼层
爱疯 发表于 2016-4-15 21:46
最好列举一下各种情况的结果,以免漏掉什么,或者免得重新想新办法

有一个问号的有2个问号的,我找最后一个问号后内容,我现在找到这个函数InStrRev,这个也能解决,谢谢版主了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 01:55 , Processed in 0.379173 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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