Объединение al oop и оператора if - PullRequest
0 голосов
/ 24 марта 2020

у меня 2 листа. Лист 1 содержит данные, которые я хочу скопировать. Если вы можете дать мне подсказку о том, как подойти, я смогу написать остальное самостоятельно.

Мой лог c должен был создать все oop, которые бы выбирали все ячейки, если выполняется условие. Это условие будет, если ячейка (i, 1) = ячейка (i + 1,1)

Я приложил 2 фотографии, первое на том, как выглядят исходные данные на листе 1, а второе лист 2 с тем, как данные выглядят после преобразования. image 1 Image 2

Вот мой код, в котором я получаю ошибку (Далее без For)

Sub Loop_if()

Dim ws As Worksheet
Set ws = ws("sheet2")

Dim i As Integer
i = 2
For i = 2 To 23000

    If Cells(i, 1) = Cells(i + 1, 1) Then
    Range(Cells(i, 3), Cells(i, 25)).Select
    Selection.Copy
    ws.Select
    If ws.Cells(i, 1) = Cells(i, 1) Then
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True


End If
Next i

End Sub

1 Ответ

0 голосов
/ 25 марта 2020

Эта ошибка возникает, когда вы не закрываете оператор IF с помощью «End IF». У вас есть 2 IF, и вам нужно 2 «End IF»

   Sub Loop_if()

    Dim ws As Worksheet
    Set ws = ws("sheet2")

    Dim i As Integer
    i = 2
    For i = 2 To 23000

        If Cells(i, 1) = Cells(i + 1, 1) Then
        Range(Cells(i, 3), Cells(i, 25)).Select
        Selection.Copy
        ws.Select
        End If
        If ws.Cells(i, 1) = Cells(i, 1) Then
        Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True


    End If
    Next i

или что-то в этом роде:

Sub Loop_if()

Dim ws As Worksheet
Set ws = ws("sheet2")

Dim i As Integer
i = 2
For i = 2 To 23000

    If Cells(i, 1) = Cells(i + 1, 1) Then
    Range(Cells(i, 3), Cells(i, 25)).Select
    Selection.Copy
    ws.Select
    ElseIf ws.Cells(i, 1) = Cells(i, 1) Then
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True


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