ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3928|回复: 14

[求助] 请教Replace函数的用法,这样用为什么会出错?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:28 | 显示全部楼层 |阅读模式
本帖最后由 月关 于 2019-8-22 10:11 编辑

各位老师早上好!
早上按F1学习了replace函数,按照参数的用法,想把 1.1.1.1.1.1 替换成 1.1.1.1.4.1,代码如下:

Sub Replace用法()
a = "1.1.1.1.1.1"
y = Replace(a, 1, 4, 9, 1) ——从第9位开始替换,将1替换为4,只替换1次
End Sub
Replace( 字符串表达式, 待替换的字符, 要替换成的字符, 开始替换的位置, 执行替换的次数 )
我是按照上面的规则来写的,但是不明白为什么结果 y=4.1 ,即使写成Replace(a, "1", "4", 9, 1)也不行, 恳请老师指正,谢谢!

————————————————————————————————————————

我以为是我使用错误,因为以前工作表函数的时候这样用完全正确。
如果第4参数即是将前面的全部抹掉,那官方F1就是挂羊头卖狗肉,
对这个函数很失望,老师们不用再回了

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:36 | 显示全部楼层
Replace函数
请参阅     示例     特性

描述

返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。

语法几

Replace(expression, find, replace[, start[, count[, compare]]])

Replace函数语法有如下命名参数:

部分 描述
expression 必需的。字符串表达式,包含要替换的子字符串。
find 必需的。要搜索到的子字符串。
replace 必需的。用来替换的子字符串。
start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。
compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-22 09:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
maditate 发表于 2019-8-22 09:36
Replace函数
请参阅     示例     特性

是的老师,我是按照上面的写的, 但是结果错误,不明白错在哪里

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:39 | 显示全部楼层
本帖最后由 kingkilled 于 2019-8-23 16:41 编辑

未经验证的胡乱猜测,猜错了~~~哈哈哈,自删

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:40 | 显示全部楼层
9那个位置有MID的味道(结果从第9位开始展示,替换从第9位开始)
所以基于这样的替换规则,就不能达到你想要的结果

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-22 09:40 | 显示全部楼层
kingkilled 发表于 2019-8-22 09:39
先猜测一下,待会开会回来验证~~
y = Replace(a, “1”, “4”, 9, 1)

我在原文里写过了,这样是不行的

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-8-22 09:42 | 显示全部楼层
zhanghai0602 发表于 2019-8-22 09:40
9那个位置有MID的味道(结果从第9位开始展示,替换从第9位开始)
所以基于这样的替换规则,就不能达到你想要的 ...

还请老师示范

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:50 | 显示全部楼层
a = "1.1.1.1.1.1"
y = Replace(a, 1, 4, 9, 1)
含义应该是这样,从第9个位置开始截断,仅仅保留从第9==>末尾的字串1.1==>执行1次替换==>得到4.1
至于得到想要的结果,可以这样
Sub Replace用法()
a = "1.1.1.1.1.1"
pos = 9
y = Left(a, pos - 1) & Replace(a, 1, 4, pos, 1)
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-8-22 09:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-8-22 10:00 | 显示全部楼层
月关 发表于 2019-8-22 09:37
是的老师,我是按照上面的写的, 但是结果错误,不明白错在哪里

如果你要每一位依次替换,
可以加上MID(I, 1)来配合使用最方便。
REPLACE()里面就不用那么多参数了。

评分

1

查看全部评分

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

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-24 03:17 , Processed in 0.048921 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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