Visual Basic para Aplicaciones - Me pueden explicar, por fa!!

Life is soft - evento anual de software empresarial
 
Vista:

Me pueden explicar, por fa!!

Publicado por Luis Estrada (5 intervenciones) el 27/06/2005 22:49:05
Saludos....

Estoy modificando una Macro que hice en Excel. Queria que esa Macro me eliminara las filas vacias de un listado, buscando en Internet encontre este codigo que funciona muy bien, pero trate de entender como funcionaba y no le entiendo.
Por eso solicito de su generosa ayuda y si me pueden explicar.....

Les dejo el codigo:

Dim strC As String, lngFila As Long
With Worksheets("LlamadasTrabajo") 'Nombre de la hoja
For lngFila = 1 To .UsedRange.Rows.Count
If WorksheetFunction.CountA(.Rows(lngFila)) = 0 Then strC = strC & lngFila & ":" & lngFila & ","
Next lngFila
Application.ScreenUpdating = False
.Range(Left(strC, Len(strC) - 1)).Delete
Application.ScreenUpdating = True
End With

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Me pueden explicar, por fa!!

Publicado por Federico (91 intervenciones) el 30/06/2005 13:45:41
Mirá basicamente hace:

Dim strC As String 'aqui guarda el número de la filas vácias
dim lngFila As Long ' Va guardando el número de la fila activa,
With Worksheets("LlamadasTrabajo") 'Nombre de la hoja
For lngFila = 1 To .UsedRange.Rows.Count hace un ciclo desde la primera fila hasta el numero de filas ocupadas
If WorksheetFunction.CountA(.Rows(lngFila)) = 0 Then
' la función counta cuenta la cantidad de celdas que tengan algo, ya sea númerico
' texto, etc..
'cuando encuentra una vacía hace:
strC = strC & lngFila & ":" & lngFila & ","
Guarda el número de fila como un texto pero con el formato de rango, para luego
tratarlo como un rango

end if
Next lngFila
Application.ScreenUpdating = False ' Esto es para que funcione más rápido

.Range(Left(strC, Len(strC) - 1)).Delete
'Toma el tango guardado en el ciclo for le resta uno porque sobra una coma
'y borra las filas todas de una
Application.ScreenUpdating = True
End With
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar