Как проверить, равны ли две ячейки, и, если нет, сделать пустую строку выше и двигаться дальше? - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь сделать код VBA, чтобы проверить каждую ячейку на двух листах, если они равны.Если нет, создайте пустую строку выше и перейдите к обоим листам.

У меня нет большого опыта использования Vba, поэтому я немного растерялся.Я надеюсь, что вы поняли мою проблему и оценили с тех пор.

Private Sub compare_cells(ByVal Target As Range)
    If Target Is Nothing Then Next
    If Cells(Target.Row, 1).Value = 'another row ' Cells(Target.Row, 4).Value Then
        Next
    Else
        'inset empty row above of the sheet with the missing value
        Next
    End If
End Sub

Приведенный выше код действительно ужасен, поэтому мне нужна помощь.Данные выглядят так: лист 1:
as being sheet 1

лист 2:
as being sheet 2

1 Ответ

0 голосов
/ 13 февраля 2019

Если мое понимание верно в вашем вопросе выше ... Вы хотите создать пустую строку, выше ЛЮБЫХ значений, которые НЕ совпадают между двумя листами.

Исходя из этого и приведенного выше кода, выне слишком далеко от правильного пути.

Попробуйте следующий код ...

Private Sub compare_cells(ByVal Target1 As Range, ByVal Target2 As Range)
If Target1 Is Nothing Then Exit Sub
If Target2 Is Nothing Then Exit Sub

Dim ws1, ws2 As Worksheet

Set ws1 = Sheets(Target1.Parent.Name)
Set ws2 = Sheets(Target2.Parent.Name)
    If Target1.Value <> Target2.Value Then
        ' If they don't match place your code here
        ws1.Range(Target1.Row & ":" & Target1.Row).Insert Shift:=xlDown
        ws2.Range(Target2.Row & ":" & Target2.Row).Insert Shift:=xlDown
    End If

End Sub

Вы можете вызвать это, используя это в другом макросе ...

Call compare_cells(Sheets("Sheet1").Range("A1"), Sheets("Sheet2").Range("D1"))

Если вы используете вышеупомянутый макрос, то он будет сравнивать диапазон «A1» на листе 1 с диапазоном «D1» на листе 2. Если эти две ячейки не совпадают, то будет вставлена ​​строкавыше как А1, так и D1.

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