Excel VBA - общая строка для добавления границы только сверху и снизу - PullRequest
6 голосов
/ 16 марта 2012

Я хочу добавить граничную линию сверху и граничную линию внизу общей строки

Например.У меня есть данные от строк 2 до 3 и столбцов 3-4, затем я добавляю итоговую строку, которая суммирует строку 2-3 в строке 5.

Я хочу добавить границу сверху и снизу строки5 и только до столбца 4.

Могу ли я использовать переменные LastRow + 2 (обратите внимание, у меня есть пустая строка между последней строкой данных и местом, где находится итоговая строка) и LastColumn как-то в Range ("A5:D5 "). Выберите, как это будет изменяться каждый раз?

Мой текущий код:

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

Ответы [ 2 ]

4 голосов
/ 16 марта 2012

Я думаю, что NexttRow все еще хорошая идея, и код также может быть упрощен, это добавляет сумму и форматирует строку суммы от строки 2 до нижней части данных, где бы это ни было:

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 голосов
/ 16 марта 2012

Вам на самом деле не нужны переменные LastRow или LastCol. Просто обратитесь к последнему ряду вашего диапазона следующим образом:

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

Вы можете обобщить это в подпрограмму, в которую вы передаете диапазон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...