2012-03-16 16 views
5

Quiero añadir una línea fronteriza en la línea superior y un borde en la parte inferior de la línea total deExcel VBA - total de la línea fronteriza que añadir en la parte superior e inferior solamente

Ej. Tengo datos de las filas 2 a 3 y columnas 3-4, luego agregué una línea total que suma la línea 2-3 en la fila 5.

Quiero agregar una línea de borde en la parte superior e inferior de la fila 5 y solo hasta la columna 4.

Puedo usar las variables LastRow + 2 (observe que tengo una línea en blanco entre la última fila de datos y donde está la línea total) y LastColumn de alguna manera en Rango ("A5: D5"). Seleccione como esto será varible cada vez?

Mi código actual:

Range("A5:D5").Select 
With Selection.Borders(xlEdgeTop) 
    .LineStyle = xlContinuous 
    .Weight = xlThin 
    .ColorIndex = xlAutomatic 
End With 
With Selection.Borders(xlEdgeBottom) 
    .LineStyle = xlContinuous 
    .Weight = xlThin 
    .ColorIndex = xlAutomatic 
End With 

Respuesta

3

Creo que lo NexttRow sigue siendo una buena idea, y el código se puede simplificar abajo también, esto se suma la suma y da formato a la fila suma de fila2 a la parte inferior de los datos, sea donde sea:

NR = Range("A" & Rows.Count).End(xlUp).Row + 1 

Range("C" & NR, "D" & NR).FormulaR1C1 = "=SUM(R2C:R[-1]C)" 
With Range("A" & NR, "D" & NR) 
    .Borders(xlEdgeTop).Weight = xlThin 
    .Borders(xlEdgeBottom).Weight = xlThin 
End With 
2

Usted realmente no necesita variables de LastCol LastRow o. Sólo se refieren a la última fila de su rango de la siguiente manera:

With Range("A5:D5") 
    With .Rows(.Rows.Count) 
     With .Borders(xlEdgeTop) 
      .LineStyle = xlContinuous 
      .Weight = xlThin 
      .ColorIndex = xlAutomatic 
     End With 
     With .Borders(xlEdgeBottom) 
      .LineStyle = xlContinuous 
      .Weight = xlThin 
      .ColorIndex = xlAutomatic 
     End With 
    End With 
End With 

Se podría generalizar esta en una subrutina que se pasa a una gama.

Cuestiones relacionadas