VBA Find & Replace содержимое ячейки на основе таблицы соответствия с использованием смещения - PullRequest
0 голосов
/ 13 ноября 2018

Почесывая голову над этой простой проблемой: у меня есть подпрограмма, чтобы найти и заменить значение в моем Sheet.Sheet1 столбце F на основе таблицы в Sheet.Classification столбце B.Значение заменяется содержимым Classification Column F, следовательно, Offset(0, 4).

Саб работает нормально, за исключением того, что я хочу заменить все содержимое моей ячейки в столбце F в Sheet 1 (а не только Lookup.Value найден).

Sub ABC()


Dim rngData     As Range
Dim rngLookup   As Range
Dim Lookup      As Range

With Sheets("Sheet1")
 Set rngData = .Range("F2", .Range("F" & Rows.Count).End(xlUp))
End With

With Sheets("Classification")
 Set rngLookup = .Range("B2", .Range("B" & Rows.Count).End(xlUp))
End With

For Each Lookup In rngLookup
If Lookup.Value = "" Then
    rngData.Replace what:=Lookup.Value, _
                    Replacement:=Lookup.Offset(0, 4).Value, _
                    LookAt:=xlPart, _
                    SearchOrder:=xlByRows, _
                    MatchCase:=False
End If
Next Lookup
End Sub

Любая помощь?

1 Ответ

0 голосов
/ 13 ноября 2018

Я думаю, вам нужно изменить оператор IF:

If Lookup.Value = "" Then
    rngData.Value =Lookup.Offset(0, 4).Value
End If

Использование метода .Replace аналогично функции REPLACE (), оно заменяет части строки, а не все содержимое. Смотри: https://docs.microsoft.com/en-us/office/vba/api/excel.range.replace

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...