2017-06-01 68 views
2

我想用另一個單詞替換列中的單詞,但是我的代碼似乎不工作,我仍試圖掌握編碼語言,但它是對我而言並不直觀。VBA Excel查找範圍中的單詞並替換

現狀:

Global Macro - Equities 
Global Macro - Bonds 
Global Macro - FX 
. 
. 
. 
And so on... 

期望的結果:

GM - Equities 
GM - Bonds 
GM - FX 
. 
. 
. 

我的代碼

Sub ReplaceFundNames() 

    Dim FundName As String 
    Dim CorrectedName As String 
    Dim ws As Worksheet 
    Dim LastRow As Long 

    Set ws = ActiveSheet 
    LastRow = Range("B" & Rows.Count).End(xlDown).Row 

    FundName = Range(LastRow) 
    CorrectedName = Replace(FundName, "Global Macro", "GM") 

    Range("B" & LastRow).Value = CorrectedName 


End Sub 

謝謝!

+0

你的代碼執行在活動工作表上的單元格'B1048576'更換,且僅當單元格中包含'「全球宏「' – ThunderFrame

回答

4

VBA中的Replace函數用於處理單個字符串,而Range.Replace方法用於處理Range

因此,你可以在一個語句執行的替換:

ActiveSheet.Range("B:B").Replace "Global Macro", "GM"

+0

你的意思是用這個單獨的語句替換上面的整個代碼嗎? –

+0

是的。您可以將其縮小到使用的行數,但假設沒有任何數據低於或高於需要替換值的範圍,則上面的行應該足夠了。重要的是你使用'Range.Replace'方法而不是'VBA.Replace'函數。 – ThunderFrame

+0

嗯,謝謝你的提示。 但是,我試過了代碼,並彈出此錯誤消息: 「編譯錯誤:預期的函數或變量」 –