Como Detectar un archivo de excel vacío con macros y cerrarlo

Tengo una macro donde recorro "n" archivos, hay algunos que contienen datos y otros no, en el caso que no tengan datos. Cómo puedo hacer una macro para que lo detecte y automáticamente lo cierre, para luego continuar con el bucle.

Este es mi código

For inicio1 = 1 To rigs

'MsgBox (rcd.elemento(inicio1))
'Exit Sub

Workbooks.Open Filename:="D:\ANALISIS MRs 2017\NEW CONSUMOS\" & rcd.elemento(inicio1) & ""
'G:\BIENES DE CAPITAL\TECHNICAL DEPARTMENT\ANALISIS MRs 2017\NUEVOS CONSUMOS\
'D:\ANALISIS MRs 2017\NUEVOS CONSUMOS\
nombrenuevolibro = ActiveWorkbook.Name
nombrenuevohoja = ActiveSheet.Name
'MsgBox (nombrenuevohoja)
''''Aquí trato de hacre la validación del vacío
If IsEmpty(nombrenuevolibro) = False Then
ActiveWorkbook.Close
Else
'nombre_amos_2 = Range("AF2")
nombre_amos_2 = Range("B2")

V1 = contador1(1, "A")

Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("C1").Select
ActiveWorkbook.Worksheets(nombrenuevohoja).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(nombrenuevohoja).Sort.SortFields.Add Key _
:=Range("C2:C" & V1), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(nombrenuevohoja).Sort
.SetRange Range("A1:V" & V1)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
'
If rigs2 = 0 Then

ChDir "D:\ANALISIS MRs 2017\CONSUMOS1\"
'"G:\BIENES DE CAPITAL\TECHNICAL DEPARTMENT\ANALISIS MRs 2017\CONSUMOS"
'D:\ANALISIS MRs 2017\CONSUMOS
ActiveWorkbook.SaveAs Filename:= _
"D:\ANALISIS MRs 2017\CONSUMOS1\" & nombrenuevolibro & "" _
, FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End If

next

1 respuesta

Respuesta
1

Le dí solución a mi propia consulta, como el archivo ya lo abre, entonces verifico si la primera celda es vacía para luego cerra el archivo y continúe con mi bucle.

Nota: La solución resaltado con negrita

For inicio1 = 1 To rigs

Workbooks.Open Filename:="D:\ANALISIS MRs 2017\NEW CONSUMOS\" & rcd.elemento(inicio1) & ""

'G:\BIENES DE CAPITAL\TECHNICAL DEPARTMENT\ANALISIS MRs 2017\NUEVOS CONSUMOS\
'D:\ANALISIS MRs 2017\NUEVOS CONSUMOS\
nombrenuevolibro = ActiveWorkbook.Name
nombrenuevohoja = ActiveSheet.Name
If Range("A1") = "" Then
ActiveWorkbook.Close
Else
nombre_amos_2 = Range("B2")

V1 = contador1(1, "A")

Columns("C:C").Select
Selection.TextToColumns Destination:=Range("C1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
Range("C1").Select
ActiveWorkbook.Worksheets(nombrenuevohoja).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(nombrenuevohoja).Sort.SortFields.Add Key _
:=Range("C2:C" & V1), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(nombrenuevohoja).Sort
.SetRange Range("A1:V" & V1)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End If
'
If rigs2 = 0 Then

'
ChDir "D:\ANALISIS MRs 2017\CONSUMOS1\"
'"G:\BIENES DE CAPITAL\TECHNICAL DEPARTMENT\ANALISIS MRs 2017\CONSUMOS"
'D:\ANALISIS MRs 2017\CONSUMOS
ActiveWorkbook.SaveAs Filename:= _
"D:\ANALISIS MRs 2017\CONSUMOS1\" & nombrenuevolibro & "" _
, FileFormat:=xlOpenXMLWorkbook, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End If

Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas