如何遍历一个单元格三次以进行多重查找和替换?



我正在尝试查找/替换,但遇到了问题。基本上,我想复制一个单元格的内容,假设它是单元格P6。我想把那个单元格的锥形8个单元格放在左边。

因此,在P6的CellAddress中,我有以下内容:1.活动名称=是2.活动/项目经理=是30.创造性指标=是Q1.新的法律批准=是Q2.目标指示器=是

在H6单元格中,我希望看到:1.活动名称2.活动/项目经理30.创意指标Q1.新的法律批准Q2.目标指示器

基本上,任何带有"YES"、"NO"或"="的内容都会被替换为"。我知道这个循环有什么问题……我就是好像无法修复它。

这是我的非工作代码。

fndList = Array("NO", "YES", "=")
rplcList = Array("", "", "")
For x = LBound(fndList) To UBound(fndList)
ActiveSheet.Range("AA1").Value = Replace(ActiveSheet.Range(CellAddress).Value, fndList(x), rplcList(x))
ActiveSheet.Range(CellAddress).Offset(0, -8).Value = ActiveSheet.Range("AA1").Value
ActiveSheet.Range("AA1").Clear
Next

这就是问题所在。在循环的第一次迭代中,我得到了以下内容:1.活动名称=是2。活动/项目经理=是30。创造性指标=是Q1。新的法律批准=是Q2。目标指示器=是

在第二次迭代中,我得到:1.活动名称=2。活动/项目经理=30。创意指标=Q1。新的法律批准=Q2。目标指示器=

在第三次迭代中,我得到:1.活动名称是2。活动/项目经理YES 30。创意指标是Q1。新的法律批准是Q2。目标指示器YES

获取该字符串一次并对其进行处理,即:

Dim str as string: str = ActiveSheet.Range(CellAddress).Value
For x = LBound(fndList) To UBound(fndList)
str = Replace(str, fndList(x), rplcList(x))
Next x
ActiveSheet.Range(CellAddress).Offset(0, -8).Value = str

然而,请注意,这不会将模式替换为"完整的单词",即使出现在其他单词内部,它们也会被替换。

最新更新