在 VBA 中查找和替换循环
Find and Replace Loop in VBA
我有一个 sheet,其中的公式包含文本“apple”。我想执行以下操作:
- 将此 sheet 中的每个单词 apple 替换为“banana”
- 打印结果(简单的复制和粘贴)
- 用“猫”替换香蕉
- 打印结果(简单的复制和粘贴)
- 将“猫”替换为“狗”
- 打印结果(简单的复制和粘贴)
- 最后以恢复基本案例结束,即用苹果替换“狗”
我已经完成了第一次迭代(见下文),只是需要有关如何实现循环的帮助。
提前致谢!!
Sub FindReplaceAll()
Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
fnd = "apple"
rplc = "banana"
'Store a specfic sheet to a variable
Set sht = Sheets("Trace")
'Perform the Find/Replace All
sht.Cells.Replace what:=fnd, Replacement:=rplc, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Range("ResFinal").Copy
Worksheets("Results").Activate
Range("E13").PasteSpecial xlPasteValues
End Sub
您可以将项目放入两个数组中并循环遍历它们,即
Sub FindReplaceAll()
Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim i As Long
fnd = Array("apple", "banana", "cats", "dogs")
rplc = Array("banana", "cats", "dogs", "apple")
'Store a specfic sheet to a variable
Set sht = Sheets("Trace")
'Perform the Find/Replace All
For i = LBound(fnd) To UBound(fnd)
sht.Cells.Replace what:=fnd(i), Replacement:=rplc(i), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Range("ResFinal").Copy
Worksheets("Results").Range("E13").PasteSpecial xlPasteValues
Next i
End Sub
我有一个 sheet,其中的公式包含文本“apple”。我想执行以下操作:
- 将此 sheet 中的每个单词 apple 替换为“banana”
- 打印结果(简单的复制和粘贴)
- 用“猫”替换香蕉
- 打印结果(简单的复制和粘贴)
- 将“猫”替换为“狗”
- 打印结果(简单的复制和粘贴)
- 最后以恢复基本案例结束,即用苹果替换“狗”
我已经完成了第一次迭代(见下文),只是需要有关如何实现循环的帮助。
提前致谢!!
Sub FindReplaceAll()
Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
fnd = "apple"
rplc = "banana"
'Store a specfic sheet to a variable
Set sht = Sheets("Trace")
'Perform the Find/Replace All
sht.Cells.Replace what:=fnd, Replacement:=rplc, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Range("ResFinal").Copy
Worksheets("Results").Activate
Range("E13").PasteSpecial xlPasteValues
End Sub
您可以将项目放入两个数组中并循环遍历它们,即
Sub FindReplaceAll()
Dim sht As Worksheet
Dim fnd As Variant
Dim rplc As Variant
Dim i As Long
fnd = Array("apple", "banana", "cats", "dogs")
rplc = Array("banana", "cats", "dogs", "apple")
'Store a specfic sheet to a variable
Set sht = Sheets("Trace")
'Perform the Find/Replace All
For i = LBound(fnd) To UBound(fnd)
sht.Cells.Replace what:=fnd(i), Replacement:=rplc(i), _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
SearchFormat:=False, ReplaceFormat:=False
Range("ResFinal").Copy
Worksheets("Results").Range("E13").PasteSpecial xlPasteValues
Next i
End Sub