0

如果这个问题听起来太基础,我说我对 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

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

4

1 回答 1

2

试试下面的代码。避免使用选择/激活。要知道为什么点击这个链接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
于 2013-05-09T07:07:20.173 回答