
Estoy creando código VBA en Excel para agregar una fila y darle formato.
Necesito que el valor de "i" sea una variable (en lugar de 20 como se muestra) dependiendo de la cantidad de entradas en la primera columna de mi hoja de Excel.
Sub NextLine()
'
' AddLine Macro
' Adds Line
Dim i As Integer
i = 20
ActiveCell.Offset(1, 0).Select '1 row down
ActiveWindow.ScrollColumn = 4
ActiveWindow.SmallScroll ToRight:=1
Range("$A$1:$M$" & i).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlHairline
End With
ActiveSheet.PageSetup.PrintArea = "$A$1:$M$" & i
End Sub
Respuesta1
Reemplace la línea:
i=20
con:
With ActiveSheet
i = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
Cuenta el número de filas con datos en la columna A.
Por cierto, probé tu macro y no agrega una fila.