Макрос VBA с несколькими задачами - PullRequest
0 голосов
/ 02 января 2019

Я работаю над макросом Excel, который делает несколько вещей: Проверяет строку, у которой все значения равны или превышают 9 Если указанные строки имеют все такие значения, они выделят первую ячейку в столбце A красным цветом и после проверки всех строк выведут количество выделенных строк. До сих пор я застрял с кодом, который дает ошибку компилятора - ожидаемая функция или переменная. Может ли кто-нибудь помочь разобраться с этим?

Public Sub test()

    S = 0
    j = 1
    A = 0
    For j = 3 To 7 Step 1
        If Cells(i, j) >= 9 Then A = A + 1
        End If
    Next
    If A = 5 Then
        Cells(1, j).Font.Color = RGB(255, 0, 0)
        S = S + 1
    End If
    MsgBox (S)

End Sub

1 Ответ

0 голосов
/ 02 января 2019

Ниже я стараюсь предоставить как можно больше подробностей, чтобы полностью объяснить каждый шаг. Внесите необходимые изменения и попробуйте следующее:

Option Explicit
Public Sub test()

    Dim StartRow As Long, StartColumn As Long, LastColumn As Long, Lastrow As Long, i As Long, j As Long, CounterValues As Long, CounterRows As Long

    StartRow = 2 'From which row will start the loop
    StartColumn = 1 'From which column will start the loop
    CounterRows = 0 'Reset Counter

    'Refer to the worksheets you work on
    With ThisWorkbook.Worksheets("Sheet1")

        Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Find the last row of column A

        'Loop Each Row from StartRow(2) to Lastrow (6)
        For i = StartRow To Lastrow

            LastColumn = .Cells(i, .Columns.Count).End(xlToLeft).Column 'Find the last column of row i

            'Loop Each Column from StartColumn(1) To LastColumn(4)
            CounterValues = 0
            For j = StartColumn To LastColumn

                If .Cells(i, j).Value >= 9 Then
                    CounterValues = CounterValues + 1
                End If

            Next j

            'If all values are equal or greater thant 9
            If CounterValues = LastColumn Then
                'Color first row cell
                .Cells(i, 1).Font.Color = RGB(255, 0, 0)
                'Count color rows
                CounterRows = CounterRows + 1
            End If

        Next i

        MsgBox CounterRows

    End With

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