我正在尝试使用逻辑替换特定单元格中的文本

时间:2018-12-12 22:07:43

标签: excel vba

这是我到目前为止使用的代码,它删除了“ p”,但没有像我期望的那样放入文本。我可能做错了什么?我已经模糊了标题和那些标题

If copySheet.Range("B2") = "p" Then
copySheet.Range("B2").Value = “POW”
  End If

  If copySheet.Range("B2") = "c" Then
copySheet.Range("B2").Value = “CAP”
  End If
End Sub

1 个答案:

答案 0 :(得分:1)

问题是风格化的引号“POW”需要用常规引号替换。

但是要立即完成整列,只需使用Range.Replace()

copySheet.Range("B:B").Replace "p", "POW", xlWhole

如果您有要替换的列表,我将填写两个数组,一个数组包含要替换的内容和替换内容。然后循环数组并执行替换:

Dim fnd As Variant
fnd = Array("p", "c")

Dim outpt As Variant
outpt = Array("POW", "CAP")

Dim i As Long
For i = LBound(fnd) To UBound(fnd)
    copySheet.Range("B:B").Replace fnd(i), outpt(i), xlWhole
Next i

现在,您只需要更新阵列即可。