Как избежать ошибки компиляции: Ожидаемый конец Sub - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь реализовать подсчет ячеек путем окрашивания с помощью VBA, вы можете проверить здесь (> https://docs.microsoft.com/en-us/office/troubleshoot/office-developer/count-cells-number-with-color-using-vba). Проблема в том, что мне возвращают каждый раз Ошибка компиляции: Ожидается конец Sub * , и я незнаю, как этого избежать. До этой строки кода у меня есть 2 End Sub-ов, которые хорошо работают.

Sub Color()

Function CountCcolor(range_data As Range, criteria As Range) As Long
    Dim datax As Range
    Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
    If datax.Interior.ColorIndex = xcolor Then
       CountCcolor = CountCcolor + 1
    End If
Next datax

End Function
End Sub

1 Ответ

1 голос
/ 19 сентября 2019
Блоки

Function и Sub не могут быть вложены таким образом.Каждый из них должен быть отдельным, с открывающей строкой Sub или Function и строкой End Sub / End Function, содержащей код.

Sub Color()
...
End Sub

Function CountCcolor(range_data As Range, criteria As Range) As Long
...
End Function

Для вызова CountCcolor в пределах Color:

Sub Color()
     ...
     Dim myCount as Long
     myCount = CountCcolor(rng1, rng2)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...