Как искать 3 значения в 3 столбцах - PullRequest
0 голосов
/ 05 февраля 2019

Я пишу макрос для поиска 3 значений в 3 столбцах на одном листе.Я довольно новичок в VBA и мне нужна помощь, пожалуйста.У меня есть 3 значения на листе «Данные» в столбцах C, D и E, которые мне нужно найти на листе «Первый» в столбцах C, D и E. Столбец C отсортирован в числовом порядке.

Пока у меня есть код, который находит значение C1 на листе «Данные», в столбце C на листе «Первый».Затем он копирует данные первой строки на листе «Данные» и вставляет их под активную ячейку, найденную в столбце C на листе «Первый».Если значение не найдено на листе «Первый», код вставляет строку внизу данных на листе «Первый».Проблема в том, что мой код находит первое вхождение C1 на листе «First» и вставляет строку из листа «Data» под активной ячейкой, но затем D1 и E1 не в числовом порядке.

Эточто у меня есть:

Sub Blank1()

Dim c As Range
Dim Source As Worksheet
Dim Target As Worksheet

Set Source = ThisWorkbook.Worksheets("Data")
Set Target = ThisWorkbook.Worksheets("first")

Set c = Source.Range("C1")

Set c = Target.Range("C:C").Find(what:=c.Value, LookIn:=xlFormulas, 
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, 
MatchCase:=False, SearchFormat:=False)

    Sheets("Data").Select
    Range("C1").Select

If Not c Is Nothing Then
    c = ActiveCell.Value

    Sheets("first").Select
    Columns("C:C").Select
    Selection.Find(what:=c, After:=ActiveCell, LookIn:=xlFormulas, _
       LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
       MatchCase:=False, SearchFormat:=False).Activate

ActiveCell.Select

Else
    Sheets("first").Select
    Range("B1").Select
    Range("B1").End(xlDown).Offset(1, 0).Select
    Selection.End(xlToLeft).Offset(0, 0).Select


End If

    Sheets("Data").Select
    Rows("1:1").Select
    Selection.Cut
    Sheets("first").Select
    ActiveCell.Offset(1).EntireRow.Insert Shift:=xlShiftDown, 
    CopyOrigin:=xlFormatFromLeftOrAbove
    ActiveCell.EntireRow.Copy
    ActiveCell.Offset(1).EntireRow.PasteSpecial xlPasteFormats
    Application.CutCopyMode = False

    Sheets("Data").Select
    Selection.Delete Shift:=xlUp
    Range("C1").Select


  End Sub

Я ожидаю, что числовые значения будут вставлены в «Первый» лист.Я также хочу, чтобы он просматривал все значения в столбце C на рабочем листе «Данные».

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