2017-06-01 71 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

嗯,谢谢你的提示。 但是,我试过了代码,并弹出此错误消息: “编译错误:预期的函数或变量” –