2013-10-15 3 views
0

Задайте еще один вопрос по циклу VBA.VBA - найдите текст и замените его соседним столбцом и повторите для каждой ячейки.

Не удалось выяснить, как получить желаемый результат с некоторыми различными вопросами/ответами цикла, которые я видел здесь.

У меня есть две колонки. В столбце A содержится текст, который будет использоваться для замены определенной части URL-адреса в столбце B (примерно так: http://www.exampleurlwithTEXTIWANTTOREPLACE.com).

я могу управлять одной замены клеток:

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

Но мне нужно Переберите его ... A1 должен заменить текст B1. A2 необходимо заменить текст в B2. И так далее, пока петля не достигнет пустой ячейки в колонке А.

Любая помощь очень ценится!

ответ

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 
+0

Я получаю сообщение об ошибке «Compile Error: Expected: =» для строки кода cl.Replace (которая все в красном цвете). –

+0

Удалите круглые скобки, попробуйте сейчас :) –

+0

Фантастический! Только то, что я искал. Я могу настроить/mod, который мне теперь нужен. Также посмотрите, где мне нужно копаться на моем VBA. Большое спасибо Давиду. –

1

Если вы заинтересованы в без зацикливания вариант, вы можете использовать:

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

Заменить А2 с клеткой вы хотите начать замену, изменить «» А «» с текстом, который вы ищете, «» B «» с текстом, который вы хотите заменить. Не забудьте оставить двойные кавычки вокруг вашей находки и заменить текст. Отрегулируйте диапазон в соответствии с вашей ситуацией. Должно быть немного быстрее, чем опция циклирования (в зависимости от того, насколько большой диапазон).

Смежные вопросы