Найти и сместить, чтобы скопировать значение в конец 2-го листа - PullRequest
0 голосов
/ 02 декабря 2018

У меня есть два файла Excel.
Я пытаюсь сделать следующее:

  1. Поиск значения в листе 1.
  2. Когда элемент найден, используйте смещение, чтобы подобрать смежное значение, то есть 4 столбца длялевый (та же строка)
  3. Добавьте значение (на шаге 2) к листу два в конце строки D

Борьба с третьим шагом.
Я получаю методили элемент данных не найден.

Sub findOne()

Dim ws1 As Worksheet
Dim ws2 As Worksheet

Set ws1 = ThisWorkbook.Sheets("one") ' ref to sheet one
Set ws2 = ThisWorkbook.Sheets("two") ' ref to sheet two

Dim rng As Range

With ws1

    ' use find on range H
    Set rng = Range("H1:H200").Find(What:="busaoc", LookAt:=xlPart)

    '- doesn't like this   
    ws2.Range("D2").End(xlDown).Offset(1, 0) = ws1.rng(.Offset(0, -4))

End With

end Sub

1 Ответ

0 голосов
/ 02 декабря 2018

Вы не использовали свой блок With, но я удалил его здесь, поскольку он не кажется необходимым , если , это ваш полный код.Это также было исправлено, чтобы не потерпеть крах, если ваша ценность на самом деле не найдена.

Sub findOne()

Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("one")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("two")
Dim rng As Range, LR As Long

Set rng = ws1.Range("H1:H200").Find(What:="busaoc", LookAt:=xlPart)

If rng Is Nothing Then
    MsgBox "Value not found"
Else
    LR = ws2.Range("D" & ws2.Rows.Count).End(xlUp).Offset(1).Row
    ws2.Range("D" & LR).Value = rng.Offset(0, -4).Value
End If

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