Excel: добавление новой строки в конец таблицы, когда две таблицы (по вертикали) находятся на одном листе - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть проблема, которую вам, вероятно, очень легко решить.

У меня есть две таблицы: Таблица1 и Таблица2.Обе таблицы находятся в одном и том же листе под названием «Бюджет».

Я хочу добавить командную кнопку / кнопку «плюс», которая позволяет пользователю добавлять новую строку внизу каждой таблицы.

Однако после попытки сделать это с помощью функции записи макросаЯ понял, что в какой-то момент новые строки таблицы 2 добавляются где-то посередине, после добавления нескольких новых строк в таблицу Table1.

Может ли кто-нибудь предоставить мне код, который решает эту проблему и что-то вроде автонастройки?

Я никогда в своей жизни что-то не кодировал.

Спасибо вам зазаранее за вашу помощь!

Код с регистратора:

Sub NEWROW() 
' 
' NEWROW Makro 
' 
' 
Range("B12:C12").Select 
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
End Sub

1 Ответ

0 голосов
/ 31 декабря 2018

Попробуйте этот код

Option Explicit

Sub AddRows()
    Dim wks As Worksheet
    Dim tbl1 As ListObject
    Dim tbl2 As ListObject


    Set wks = ActiveSheet

    Set tbl1 = wks.ListObjects("Table1")
    Set tbl2 = wks.ListObjects("Table2")

    tbl1.ListRows.Add
    tbl2.ListRows.Add

End Sub

Объясняется объект таблицы здесь

Обновление Хорошо, для абсолютного новичка это может быть самым простымспособ сделать это.

Sub AddRowTbl1()
    Dim wks As Worksheet
    Dim tbl As ListObject
    Set wks = ActiveSheet

    Set tbl = wks.ListObjects("Table1")
    tbl.ListRows.Add

End Sub

Sub AddRowTbl2()
    Dim wks As Worksheet
    Dim tbl As ListObject

    Set wks = ActiveSheet

    Set tbl = wks.ListObjects("Table2")

    tbl.ListRows.Add
End Sub

PS Более опытный пользователь будет использовать функцию

Function tblAddRow(tblname As String, wks As Worksheet)

Dim tbl As ListObject

    On Error GoTo EH

    Set tbl = wks.ListObjects(tblname)
    tbl.ListRows.Add

EH:

End Function

Sub Test_tblAdd()
    tblAddRow "Table1", ActiveSheet
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...