Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
Excel VBA Macro Crashes Excel

I have created a macro with some help with the wonderful people of this website that figures out if columns in this excel are filled and then separates them for a bigger project. my problem is that the code just crashes (loads until I click in which I'm told excel is unresponsive) excel. could I get some help

Option Explicit

Public Sub emptysinder()

    Dim i As Long
    Dim r As Range
    Dim num As Integer
    
    For i = 1 To 9
        Set r = Range("F1").Offset(0, i - 1).Resize(200, 1)
        If IsAllEmpty(r) Then
            num = num + 1
            Debug.Print "Range " & r.Address & " is all empty." & num
        ElseIf IsAnyEmpty(r) Then
            Debug.Print "Range " & r.Address & " is partially empty."
        Else
            Debug.Print "Range " & r.Address & " filled."
        End If
    Next i
    split (num)

End Sub

Public Function IsAllEmpty(ByVal r_range As Range) As Boolean
    Dim Item As Range
    For Each Item In r_range
        If Not IsEmpty(Item) Then
            IsAllEmpty = False
            Exit Function
        End If
    Next
    IsAllEmpty = True
End Function

Public Function IsAnyEmpty(ByVal r_range As Range) As Boolean
    Dim Item As Range
    For Each Item In r_range
        If IsEmpty(Item) Then
            IsAnyEmpty = True
            Exit Function
        End If
    Next
    IsAnyEmpty = False
End Function
Public Function split(i As Integer)
    Dim sheet As Integer
    Dim colOpt As Integer
    sheet = 14
    colOpt = sheet - i
    Dim s As Integer
    Do While i > 0
        For s = 4 To 0
        Columns(colOpt).Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        i = i - 1
        Next s
    Loop
End Function
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

As Shrotter said above, your for loop in the split function isn't executing because the s value is incrementing, not decrementing. Use For s = 4 To 0 Step -1 to decrease s by 1 every iteration.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda