Estoy seguro de que existe una función que devuelve el último día del mes, pero hasta que alguien te indique cuál es, seguro que va a resulverte el problema esta función que se me ha ocurrido:
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
    '  TextBox en el que se introduce la fecha a valorar
    If KeyCode = 13 Then
        Dim nDias As Integer             ' Este será el valor del último día del mes
        nDias = DiasMes(Text1.Text)
    End If
End Sub
Private Function DiasMes(dFecha As Date) As Integer
    Dim nDias As Integer
    Dim dMes As Date
    
    On Error Resume Next
    nDias = 31
    Do
        dMes = Str(nDias) & Mid(dFecha, 3)
        If Err = 0 Then
            Exit Do
        End If
        Err = 0
        nDias = nDias - 1
    Loop
    DiasMes = nDias
End Function
Te adjunto el programita que he preparado para conseguir este cálculo.
También tengo que indicarte que este tema debías de haberlo planteado en el foro de Visual Basic, no en VBA...
Saludos y suerte