У меня в таблице на листе 1 есть две колонки А и Б. Я создал макрос, чтобы найти значение A1 на листе 2 и заменить значение B1 вместо значения A1 на листе 2.

Я хочу улучшить макрос, чтобы охватить весь диапазон столбцов A и B.

    Sub Find_Replace()
'

'
    Sheets("Sheet1").Select
    Range("A1").Select
    Selection.Copy
    Sheets("Sheet1").Select
    Range("B1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Sheet2").Select
    Selection.Replace What:="Value 1 ", Replacement:="value X", LookAt:= _
        xlPart, SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

образец таблицы

** ищем, чтобы улучшить диапазон ("А1").Выберите, чтобы охватить все доступные ячейки в диапазоне A и B

1 ответ1

0

Попробуйте этот код. Примерный диапазон:A1:A10 в Sheet1. B1:B10 автоматически передается с использованием метода смещения в коде VBA. Тем не менее, ограничение, как я упомянул в приведенном выше комментарии, применимо. Листы - это Лист1 и Лист2 в одной книге.

Попробуйте этот код и вернитесь назад.

Sub Macro1()
Set myrange = Sheet1.Range("A1:A10")
For Each cell In myrange

Dim find1
Dim replace1

find1 = cell.Value
replace1 = cell.Offset(RowOffSet:=0, ColumnOffset:=1).Value

    Sheet2.Cells.Replace What:=find1, Replacement:=replace1, LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Next cell
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .