Excel 我试图用逻辑替换特定单元格中的文本

Excel 我试图用逻辑替换特定单元格中的文本,excel,vba,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 问题是样式化的引号“POW”

这是我到目前为止使用的代码,它删除了“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

问题是样式化的引号
“POW”
需要用常规引号替换

但要一次完成整列,只需使用
Range.Replace()

如果您有一个要替换的列表,我将填充两个数组,一个是要替换的内容,另一个是要替换的内容。然后循环阵列并执行替换操作:

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

现在您只需要更新阵列。

这是直接从vbe复制的吗。你看到样式化的引号了吗:
它们需要用常规引号替换。@ScottCraner我觉得这很有趣;如果您查询这些样式化引号中任何内容的值,它将返回空值,并且没有错误地分配给字符串或变量,VBA在这里做什么?非常感谢,我不知道这些内容是如何输入的。我根据需要自学,所以有很多我不知道。巨大的帮助斯科特再次感谢!有没有一种方法可以使用类似的宏来包含整个列?查看Range.Replace。
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