2017-09-25 184 views
3

在Excel之前的所有字符,這是細胞值的一個例子。 「▲99315」, 「▲65」。我正在嘗試使用VBA刪除總是向上或向下的箭頭,以獲得或損失。Excel的VBA查找和替換數字

我似乎無法使用VBA來完成這項工作。當我打開這個工作簿時,它會自動更新。我想運行一個VBA來查找和替換箭頭。當我嘗試在「查找」中粘貼箭頭字符時,它顯示爲「?」。

+2

,如果他們在每一個細胞,使用文本到列列分成兩個,然後刪除第一列 – jsotola

+1

您也可以包括截圖,讓我們知道正在使用什麼箭?您可能需要使用Unicode字符刪除它們(一【示例是在這裏(https://stackoverflow.com/q/37024107/4650297)) – BruceWayne

+2

你也可以使用一個公式,說值是A1:= MID(A1,2,LEN(A1))假定箭頭總是第一個字符。 – Sorceri

回答

2

如果所有這些數字的強制包含的第一個字符爲向上和向下箭頭之一,你可以試試這個....

下面的代碼假定您的號碼在A列,並從開始行2。如果不是,請根據您的要求進行更改。

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 
+0

這爲我工作。感謝您的快速幫助。第一次在這裏,並有很多快速的答案。驚人。 – sms

+1

@sms不客氣!很高興它的工作。請花一點時間接受答案,將您的問題標記爲已解決。 :) – sktneer

0

如果這些條件格式的圖標,你需要使用rng.FormatConditions.Delete方法。

1

要使用VBA查找,你需要確定你要替換的字符的代碼。假設你使用的是一樣的,你粘貼到你的問題的箭頭,下面的代碼將工作:

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

注爲雙字節字符使用ChrW,和十六進制代碼代表的向上和向下箭頭。