Excel自动替换宏

时间:2013-05-09 06:53:43

标签: excel excel-vba vba

如果这个问题听起来太基础,我告诉我没有Excel VBA的经验。我已经尝试过使用Dim和数组,但我没有实现我的目标。我得到错误或无限循环。

基本上我有5个不同的旧文本要替换,我想创建一个数组,循环它以便全部删除。

Sub AutoReplace()

Dim myArray(1 To 5) As String
myArray(1) = "Text1"
myArray(2) = "Text2"
myArray(3) = "Text3"
myArray(4) = "Text4"
myArray(5) = "Text5"

For Each item In myArray
ActiveCell.Select
ActiveCell.Columns("A:A").EntireColumn.Select

    Selection.Replace What:=item, Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
Next item

End Sub

我正在寻找关于我的代码有什么问题的建议,或者是一种完全不同的方法。我上面提到的最终目标。

1 个答案:

答案 0 :(得分:2)

尝试以下代码。避免使用选择/激活。要知道为何点击此link。 您也可以明确指定工作表名称,例如Sheets("sheet1").Columns("A:A"),否则需要ActiveSheet

Sub AutoReplace()

    Dim myArray(1 To 5) As String
    myArray(1) = "Text1"
    myArray(2) = "Text2"
    myArray(3) = "Text3"
    myArray(4) = "Text4"
    myArray(5) = "Text5"

    For Each Item In myArray

        Columns("A:A").Replace What:=Item, Replacement:="", LookAt:=xlPart, _
                          SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                          ReplaceFormat:=False
    Next Item

End Sub