Не удается переключить строку после определенного номера строки - PullRequest
0 голосов
/ 28 сентября 2019

Я довольно новичок в программировании, и у меня есть университетское задание, в котором мне нужно вычислить, есть ли у человека более 40 часов в неделю, если да, то в строке (H3: K3) нужно написать об этом. (каждая ячейка = 1 неделя) Но я не знаю, как изменить строку после достижения позиции К3.Так что я могу проверить только одного человека из 5. Пожалуйста, кто-нибудь может мне помочь с этим .. Спасибо Снимок экрана

VBA

Sub ssda()
    x=3
    i=2
    j=8
    Do
        x=x+1
        For i = 2 To 5
            if Cells(x, i) > 40 Then
              Cells(x, j) = "Ir parstrade"
              j = j + 1
        Else
            Cells(x, j) = "Nav parstrades"
            j = j + 1
        End If
    Next
    Loop Until x=x+1
End Sub

Мне нужно все 5 человекесть ответ, если они работали более 40 часов.Нужно взять числа из ячейки (B3: D3), если их больше 40, тогда в строке (H3: K3) должно быть «Хорошо», иначе «Плохо», после чего нужно проверить следующего человека.

1 Ответ

0 голосов
/ 28 сентября 2019

Это не проверено, но я думаю, что это должно быть правильно: во-первых, вам придется сбросить j до 8 для каждого человека.
Но вы также можете использовать .Offset из ячейки (6 ячеек длясправа от каждого номера) мне кажется, что это проще.

Sub ssda()
    x=3
    ' i=2 not needed
    ' j=8 wrong here
    Do
        ' x=x+1 wrong here, if you want to start in row 3, not 4,
        ' in the first round. Put this at the end of the loop
        ' j = 8 would be ok here
        For i = 2 To 5
            if Cells(x, i) > 40 Then
                'Cells(x, j) = "Ir parstrade"
                ' alternative: just use offset
                Cells(x, i).Offset(0, 6) = "Ir parstrade"
            Else
                Cells(x, i).Offset(0, 6) = "Nav parstrades"
                'Cells(x, j) = "Nav parstrades"
            End If
            j = j + 1
        Next
        x = x + 1
    'Loop Until x=x+1 - this can never be true
    Loop Until Cells(x, 1) = ""
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...