Excel VBA – Как выбрать всю таблицу границ

Я очень новичок в Excel VB. Я надеюсь, что вы сможете помочь с моей проблемой.

У меня есть несколько таблиц, подобных этому это

Таблицы можно редактировать, например, путем добавления новых строк и т. Д. Пользователем.

Я хочу выделить и скопировать последнюю таблицу (одну в последней строке) и вставить ее в следующее свободное место, 3 строки вниз. Мне удалось это сделать, но я могу только выделить и скопировать ячейки с данными. Поэтому, если в середине таблицы есть пустая строка или пустая последняя строка с границами, она не будет копироваться правильно, как показано ниже:

Вот

Мне все еще нужно копировать все в пределах границ, включая пустые строки, но мне не хватает навыков и знаний для этого. Надеюсь, вы сможете помочь.

Ниже приведен мой код:

Sub CopyPaste() LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row FirstColumn = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlNext).Column LastColumn = Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column BelowLastName = Cells.Find("", After:=Cells(LastRow, FirstColumn), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Row Cells(BelowLastName, FirstColumn).Select 'This selects C5 (refer image) Selection.Offset(-1).Select 'This selects C4 (refer image) Range(Selection, Cells(LastRow, LastColumn)).Select 'This highlights whole table Selection.Copy Cells(LastRow, FirstColumn).Select ActiveCell.Offset(3).Select ActiveSheet.Paste Application.CutCopyMode = False End Sub 

Попробуй это

 Sub x() Dim rEnd As Range, rStart As Range, i As Long Set rEnd = Range("C" & Rows.Count).End(xlUp) Do While rEnd.Offset(i).Borders(xlEdgeBottom).LineStyle = xlContinuous i = i - 1 Loop Set rStart = rEnd.Offset(i + 1) Range(rStart, rEnd).Resize(, 8).Copy rEnd.Offset(3) End Sub 
Interesting Posts
Давайте будем гением компьютера.