Удалить заявления Goto - PullRequest
0 голосов
/ 21 июня 2019

Мне нужно оптимизировать код, и я хотел бы удалить циклы goto by, но у меня возникли небольшие проблемы с предлагаемыми циклами и синтаксисом VBA!

    Dim a As Integer, b As Integer

a = 2

line1: 'Goto line
Workbooks("0-base de données.xlsx").Worksheets(1).Activate

If Cells(a, 1) <> "" Then
    b = a
 line2: 'Goto line
    If Cells(a, 18) = Cells(a + 1, 18) Then
        If Cells(a, 23) <> "" And Cells(a, 23) <= Date And Cells(a, 256) = 1 Then
            a = a + 1
            GoTo line2
        Else
    line3: 'Goto line
            If Cells(a, 18) = Cells(a + 1, 18) Then
                a = a + 1
                GoTo line3
            Else:
                a = a + 1
                GoTo line1
            End If
        End If
    Else
        If Cells(a, 23) <> "" And Cells(a, 23) <= Date And Cells(a, 256) = 1 Then

            Workbooks("0-base de données.xlsx").Worksheets(1).Range("1:2").Copy
            Workbooks("0-base de données1.xlsx").Worksheets(1).Activate
            D = 2
line5: 'Goto line
            If Cells(D, 1) <> "" Then
                D = D + 1
                GoTo line5
            End If
            Cells(D, 1).Select
            ActiveSheet.Paste
            Windows("0-base de données.xlsx").Activate
            Rows(b & ":" & a).Select
            Selection.Delete Shift:=xlUp
            a = b
            GoTo line1
        End If
        a = a + 1
        GoTo line1
    End If
End If

Я прочитал многосообщений, но я не нашел соответствующий код :(

Заранее спасибо

1 Ответ

1 голос
/ 21 июня 2019

ОК, это грязно!

Не собираюсь делать все это, потому что мне действительно трудно читать, но как фрагмент:

D = 2
line5: 'Goto line
If Cells(D, 1) <> "" Then
    D = D + 1
    GoTo line5
End If

Должно быть

D = 2
Do Until Cells(D,1)<>""       
    D = D + 1
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...