Para cada função no VBA, o Excel não funciona

0
Function IsWeekendDay(monthRange As Range)
    Dim DayNum As Variant
    Dim IsWeekend As Boolean
    Dim s As String
    Dim cell As Range
    Set currentsheet = ActiveWorkbook.ActiveSheet
    Dim CellsDown As Long
    Dim CurVal As String
    Dim index As Integer
    Dim CurCol As Integer

    index = 44
    CurCol = 0
    CellsDown = 21
    CurVal = "W"

    For Each cell In monthRange
        DayNum = WorksheetFunction.Weekday(cell.Value, vbSunday)
        If Not IsError(DayNum) Then
            Select Case DayNum
                Case 2 To 6 ' Monday thru Friday
                    IsWeekend = False
                    cell.Interior.ColorIndex = 2
                Case Else
                    IsWeekend = True
                    cell.Interior.ColorIndex = 44
                    For CurrRow = 2 To CellsDown
                        If (Range(cell.Address).Offset(CurrRow - 1 ,CurCol).Interior.ColorIndex = 2) Then
                            Range(cell.Address).Offset(CurrRow - 1, CurCol).Clear
                            Range(cell.Address).Offset(CurrRow - 1, CurCol).BorderAround (xlContinuous)
                            Range(cell.Address).Offset(CurrRow - 1, CurCol).Value = CurVal
                            Range(cell.Address).Offset(CurrRow - 1, CurCol).Interior.ColorIndex = index
                        End If
                    Next CurrRow
            End Select
        Else
            IsWeekend = False ' error
        End If
    Next cell    
End Function

Eu dou a esta função um intervalo de células contendo as datas de um mês. Eu vou com um For Each através do intervalo e verifico se o valor da célula é um dia de fim de semana ou não, se é que eu mudo a cor e alguns valores das células abaixo.

Meu problema é que meu programa pega apenas a primeira célula do intervalo (por exemplo, 1-fev-2018) e o verifica depois que ele sai do For Each e não vai para a próxima célula (2 -Fev-2018). Ele faz isso 3 vezes e depois trava.

Qual poderia ser o problema?

    
por Gabriel Corneanu 22.01.2018 / 12:50

0 respostas