Excel 我试图用逻辑替换特定单元格中的文本
这是我到目前为止使用的代码,它删除了“p”,但没有像我预期的那样放入文本。我可能做错了什么?我已经淡化了我的头衔和那些作品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”
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