如果这个问题听起来太基础,我告诉我没有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
我正在寻找关于我的代码有什么问题的建议,或者是一种完全不同的方法。我上面提到的最终目标。
答案 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