Excel VBA在数字之前查找并替换所有字符



在Excel中,这是单元格值的一个示例。"▲99315","▲65"。我正在尝试使用VBA删除始终向上或向下的箭头,以获取收益或损失。

我似乎无法使用VBA进行这项工作。当我打开此工作簿时,它会自动更新。我想运行一个VBA来"查找并替换"箭头。当我尝试将"查找"中的箭头字符粘贴为"显示为"?"。

如果所有这些数字都强制包含第一个字符作为上下箭头之一,则可以尝试一下。...

以下代码假定您的数字在A列,并从Row2开始。如果不是,请根据您的要求更改它。

Sub ReplaceArrows()
    Dim lr As Long
    lr = Cells(Rows.Count, "A").End(xlUp).Row
    Range("A2:A" & lr).Value = Evaluate("=IF(A2:A" & lr & "="""","""",RIGHT(A2:A" & lr & ",LEN(A2:A" & lr & ")-1)+0)")
End Sub

要使用VBA查找,您需要确定要替换的字符的代码。假设您使用的箭头与您粘贴到问题中相同,则以下代码将起作用:

with myRange
    .Replace what:=ChrW(&H25B2), replacement:=""  'Up Arrow
    .Replace what:=ChrW(&H25BC), replacement:=""  'Down Arrow
end with

请注意,ChrW用于双字节字符,以及代表向上和向下箭头的十六进制代码。

如果这些是条件格式的图标,则需要使用rng.formatconditions.delete方法。

最新更新