2017-02-09 17 views
1

У меня есть таблица динамического диапазона [Определенное имя таблицы = MainTable]. У меня также есть код, который позволяет мне найти последнюю ячейку в DateRange (Определенный диапазон имен для столбца A).Добавление следующего месяца программно (VBA) в таблицу динамического диапазона в Excel

Sub Last_Row_Range() 
Dim nextMonth As Range 
Set nextMonth = Sheets("MainTable").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 
nextMonth.Select 
End Sub 

Однако, вот что я не могу понять. Я хочу, чтобы пользователь мог нажать кнопку (btnNextMonth), которая автоматически переходит к последней строке в DateRange, смещения на 1 ИАвтоматически добавляет следующий месяц. Ниже представлена ​​картина того, чего я пытаюсь достичь. Спасибо заранее, ребята. enter image description here

ответ

1

Попробуйте использовать таблицу в своих интересах вместо того, чтобы вручную находить последнюю строку и вставлять ее. Вот пример:

Sub Last_Row_Range() 
    'Get reference to table 
    Dim tbl As ListObject 
    Set tbl = Sheets("MainTable").Range("MainTable").ListObject 

    'Insert new row in table 
    Dim tblRow As ListRow 
    Set tblRow = tbl.ListRows.Add(AlwaysInsert:=True) 

    'Increment previous date by 1 month and place in new row 
    tblRow.Range(1, 1) = DateAdd("m", 1, tblRow.Range(0, 1).Value) 
End Sub 

Испытано

enter image description here

+0

спасибо @Portland Runner. Работает отлично! –