VBA - 查找文本并替换为相邻列,并为每个单元格重复

时间:2013-10-15 14:25:26

标签: excel vba excel-vba

有另一个VBA循环问题。

无法弄清楚如何通过我在这里看到的各种循环问题/答案来获得所需的结果。

我有两列。 A列包含将用于替换B列中URL的特定部分的文本(如下所示:http://www.exampleurlwithTEXTIWANTTOREPLACE.com)。

我可以管理单个细胞更换:

.Range("B1").Replace "TEXTIWANTTOREPLACE", "TEXT2" + .Range("A1")

但是我需要循环它... A1需要替换B1中的文本。 A2需要替换B2中的文本。依此类推,直到循环到达A列中的空单元格。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

如果您对非循环选项感兴趣,可以使用:

Sub test()
    Sheet1.Range("B2:B25").Formula = "=SUBSTITUTE(A2,""A"",""B"")"
    Sheet1.Range("B2:B25").Value = Sheet1.Range("B2:B25").Value
End Sub

将A2替换为您要开始更换的单元格,将“”A“”更改为您要查找的文本,将“B”“更改为要替换它的文本。请务必在查找和替换文本周围留下双引号。调整范围以适合您的情况。应该比循环选项快得多(取决于范围有多大)。

答案 1 :(得分:0)

定义表示列的范围,以及表示单个单元格的范围变量,然后迭代此列范围内的单元格,并进行替换:

Dim colRange as Range
Dim cl as Range
Set colRange = Range("B1:B100") '# Modify as needed
For each cl in colRange.Cells
    cl.Replace "TEXTIWANTTOREPLACE", "TEXT2" & cl.Offset(0,-1).Value, xlPart
Next