VBA проверяет значение (shell-ID) из Sheet1 и Sheet2 - PullRequest
0 голосов
/ 14 февраля 2020

VBA проверяет значение (shell-ID) из Sheet1 и Sheet2.

Итак, я начинающий VBA. Тем не менее, я пытался выяснить код для этого, используя различные источники inte rnet. Поэтому моя идея заключается в том, что у меня есть два листа данных (скажем, sheet1 и sheet2). Лист1 является основным списком, а лист2 содержит все основные данные. Теперь моими основными условиями является то, что если Shell-ID указанной строки c в sheet1 совпадает с Shell-ID в sheet2, то просто обновите фазу проекта. Но если значение не существует, скопируйте другие столбцы, такие как имя проекта, описание проекта, фаза проекта и т. Д. c. для этого соответствующего идентификатора оболочки обратно в sheet1 из sheet2.

Пока я могу копировать только всю строку на лист, но не указывать c деталей, которые мне требуются. Вот мой код и то, что я пробовал. Любая помощь будет оценена.

Редактировать: по какой-то причине я не могу прикрепить файлы к стеку (не знаю, можно ли быть честным), но я добавил картинки для листа

Sub Copying()
'defining the variables

Dim sh1 As Worksheet, sh2 As Worksheet, lr As Long, fn As Range, sr As Range, rng As Range, n As Long
Dim i As Long, j As Long

Set sh1 = Sheet1
Set sh2 = Sheet2

Application.ScreenUpdating = False

'counting the number of rows in sheet 1

 With Worksheets("Sheet1")

    lr = .Cells(Rows.Count, 1).End(xlUp).Row + 1

  End With

  'gives you the number of rows
 MsgBox ("Sheet1 has " & lr & "rows")

   'counting rows for sheet2
 With Worksheets("Sheet2")
j = .Cells(Rows.Count, 1).End(xlUp).Row
  End With

'gives the number of rows for sheet2 
 MsgBox ("Sheet2 has " & j & "rows")

'checking the value from sheet2 vs sheet1 for shell ID #, if not present then it will copy the entire row


For i = 2 To j


    With Worksheets("Sheet2")

        If .Cells(i, 1).Value <> 
     Worksheets("Sheet1").Cells(i, 1).Value Then

        .Rows(i).Copy 

     Destination:=Worksheets("Sheet1").Range("A" & lr)

        lr = lr + 1

        ElseIf .Cells(i, 1).Value = 
         Worksheets("Sheet1").Cells(i, 1).Value Then

    End If

    End With

    Next i

      MsgBox ("Copying complete")

 End Sub

sheet1 sheet2

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