Я использую функцию VLookup для отображения Tabelle5.Range("A:A")
на основе идентификационных номеров в Tabelle3.Cells(7 + i, 1)
.Если идентификационный номер находится в Tabelle5.Range("A:A")
, то различные ячейки из этой строки должны быть скопированы в правые ячейки в (строке) Tabelle3.Cells(7 + i, 1)
.Это работает нормально со следующим кодом.
Sub VLookup
Dim lastrow As Long
Dim NFR As Long
lastrow = Tabelle5.Range("A" & Rows.Count).End(xlUp).Row
NFR = Tabelle3.Range("B" & Rows.Count).End(xlUp).Offset(-1).Row
Set myrange = Tabelle5.UsedRange
For i = 2 To lastrow
On Error Resume Next
If Tabelle3.Cells(7 + i, 1) <> "" And Not IsError(Application.Match(Tabelle3.Cells(7 + i, 1), Tabelle5.Range("A:A"), False)) Then
Tabelle3.Cells(7 + i, 2) = Application.WorksheetFunction.VLookup(Tabelle3.Cells(7 + i, 1), myrange, 2, False)
Tabelle3.Cells(7 + i, 3) = Application.WorksheetFunction.VLookup(Tabelle3.Cells(7 + i, 1), myrange, 3, False)
Tabelle3.Cells(7 + i, 4) = Application.WorksheetFunction.VLookup(Tabelle3.Cells(7 + i, 1), myrange, 4, False)
End If
Next i
End Sub
Моя проблема здесь в том, что в Tabelle3
могут быть ячейки, которые уже содержат данные.Эти данные будут перезаписаны «новыми» данными из Tabelle5
.Однако может случиться так, что «новые» данные из Tabelle5
будут пустой ячейкой.Это будет означать, что я потеряю данные, потому что заполненная ячейка будет перезаписана пустой ячейкой.
РЕДАКТИРОВАТЬ Кто-нибудь знает, как применять Vlookup, только если идентификационный номер из Tabelle3.Cells(7 + i, 1)
также найден в Tabelle5.Range("A:A")
(для этого я использую Vlookup) и ввторой шаг принимает только непустые ячейки от myrange Column 2,3, and 4
.
Пример Идентификационный номер из Tabelle3.Cells(12, 1)
находится в Tabelle5.Cells(29,1)
.Row 29 in Tabelle5
содержит следующие значения:
- Идентификационный номер A29
- B29 Новые данные
- C29 Пусто
- D29 Новые данные
На следующем шаге я хочу, чтобы мой код только копировал «Новые данные» из B29 и D29 в определенные ячейки в Tabelle3
, но пропускал C29, потому что это пустая ячейка, и это может перезаписать уже заполненную ячейку в Tabelle3
.