2012-03-16 34 views
5

Tôi muốn thêm đường viền ở trên cùng và đường viền ở cuối dòng tổng sốVBA Excel - tổng dòng để thêm đường viền ở trên cùng và dưới cùng chỉ

Ví dụ: Tôi có dữ liệu từ các hàng 2 đến 3 và các cột 3-4, sau đó tôi thêm một dòng tổng cộng dòng 2-3 vào hàng 5.

Tôi muốn thêm một đường biên ở trên cùng và dưới cùng của hàng 5 và chỉ tối đa cột 4.

Tôi có thể sử dụng biến LastRow + 2 (lưu ý tôi có một dòng trống giữa hàng cuối cùng của dữ liệu và tổng dòng) và LastColumn một số cách trong Phạm vi ("A5: D5"). Chọn vì điều này sẽ có thể thay đổi mỗi lần?

Mã hiện tại của tôi:

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 

Trả lời

3

Tôi nghĩ rằng điều NexttRow vẫn là một ý tưởng hay và mã cũng có thể được đơn giản hóa, điều này bổ sung tổng và định dạng hàng tổng hợp từ hàng2 đến cuối dữ liệu, ở bất cứ đâu:

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

Bạn không thực sự cần LastRow hoặc biến LastCol. Chỉ cần tham khảo các dòng cuối cùng của phạm vi của bạn như thế này:

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 

Bạn có thể khái quát này thành một chương trình con mà bạn vượt qua một loạt đến.

Các vấn đề liên quan