excel - 绞尽脑汁试图替换公式中的子字符串而不替换稍大的子字符串?
问题描述
简单地说,我有一个带有公式的单元格
=IF(A4="Name", IFERROR(J4*(I4-AI4), 0), "")
我正在尝试用“BH4”替换“I4”,而“AI4”也不会变成“ABH4”。但不能假设该公式将始终遵循此模式(因此实际上并不是仅查找和替换字符串的第一次出现或类似的选项
我研究了 Replace 和 Substitute 函数,但它们似乎不处理通配符。我还尝试使用 Range.Replace 方法,我认为该方法可以处理通配符,但我无法真正让它工作。但即使那样,如果我不确定什么通配符设置会起作用
解决方案
假设公式在单元格B9中。
这只会更改子字符串的第一次出现:
Sub FixFormula()
With Range("B9")
.Formula = Application.Substitute(.Formula, "I4", "BH4", 1)
End With
End Sub
推荐阅读
- salesforce - 我想同时学习 Salesforce 管理员和开发人员?
- python - 下拉从 Python Dash 中的 SQL 中提取数据的问题
- python - 过滤显示的 CONNECT https 请求
- docker - 获取用于网络上 docker 容器的 IP 地址
- liquibase-hibernate - 从我的项目代码访问 http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd 时出现 HTTP 403
- sql - 如何在 SQL 查询中添加具有大量对象的约束?
- android - 在 android 中使用 cognito 凭证提供程序的 Aws mqtt 连接
- python - 类在 Django 和 python 中没有对象错误
- ios - 在收到粘贴板内容更改通知后,我收到了很多崩溃
- java - 在spring webservice响应中设置xml响应头