Попытка установить границы диапазона с одинаковыми строками, но разными столбцами. - PullRequest
0 голосов
/ 09 марта 2012

У меня есть в основном набор сводных таблиц, которые собирают информацию из сотен или около того рабочих листов - одна сводка предназначена для информации за текущий цикл, а те, с которыми я сейчас связываюсь, разбивают информацию о текущем цикле на отдельный финансовый год отделаотслеживание листов.У меня есть код, прекрасно работающий для перемещения информации, но я не могу получить правильный синтаксис для установки / выбора правильного диапазона после того, как информация скопирована, чтобы установить границы вокруг вновь добавленной информации.Мой код для перемещения информации:

Sub FYFTEE()

    Dim shtCurrent As Worksheet
    Dim shtFY As Worksheet
    Dim LastCol As Long
    Dim CopyRng As Range

    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

    Set shtCurrent = ThisWorkbook.Sheets("Cycle Summary")
    Set shtFY = ThisWorkbook.Sheets("FY12 D1")
    Set CopyRng = shtCurrent.Range("$C$12:$C$47")

    LastCol = shtFY.Cells("5", Columns.Count).End(xlToLeft).Column + 1

    With CopyRng
        shtFY.Cells("5", LastCol).Resize(.Rows.Count, .Columns.Count).Value = .Value
    End With

    shtFY.Cells("4", LastCol).Value = shtCurrent.Range("I3").Value

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With

End Sub

Спасибо за ваш совет и направление!

1 Ответ

2 голосов
/ 09 марта 2012

Предполагая, что вы хотите новый набор границ вокруг каждого набора скопированных данных, объявите это:

Dim destinationRange As Range

И измените ваше With CopyRng заявление на:

With CopyRng
    Set destinationRange = shtFY.Cells("5", LastCol).Resize(.Rows.Count, .Columns.Count)
    destinationRange.Value = .Value
    destinationRange.BorderAround Weight:=xlThick
End With

Это даст вам толстую рамку вокруг каждого скопированного набора данных.

Или, если вам нужна рамка вокруг всего на листе назначения, вы можете использовать это вместо кода выше:

shtFY.Cells.Borders.LineStyle = xlNone
shtFY.UsedRange.BorderAround Weight:=xlThick

Сразу после строки:

shtFY.Cells("4", LastCol).Value = shtCurrent.Range("I3").Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...