Excel Добавить строки во все таблицы и вставить данные во все из них - PullRequest
0 голосов
/ 01 апреля 2020

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

В настоящее время я получил этот код:

Sub Test()

Dim the_sheet As Worksheet
Dim tbl As ListObject
Dim newrow As ListRow

Set ws = ActiveSheet
myValue_1 = InputBox("What Month?")
myValue_2 = InputBox("Fill in name", "Name Employee")
myValue_3 = InputBox("Fill in birth date", "Birth Date Employee")
myValue_4 = InputBox("Fill in BSN", "BSN Employee")
Set tbl = ws.ListObjects(myValue_1)

Set newrow = tbl.ListRows.Add
With newrow
    .Range(1) = myValue_2
    .Range(2) = myValue_3
    .Range(3) = myValue_4
End With

End Sub

Этот код, однако, ищет конкретные c таблицы (которые имеют названия месяцев, январь, февраль, и др c.). Таким образом, с помощью этого кода я могу заполнить данные в 1 конкретную c таблицу, но я хочу, чтобы эти данные можно было вносить в каждую таблицу, которая находится на рабочем листе «Персонал».

Может кто-нибудь помочь меня здесь?

С уважением,

Ответы [ 2 ]

2 голосов
/ 01 апреля 2020

Просто l oop через все таблицы на рабочем листе:

Sub Test()

    Dim tbl As ListObject
    Dim newrow As ListRow

    myValue_2 = InputBox("Fill in name", "Name Employee")
    myValue_3 = InputBox("Fill in birth date", "Birth Date Employee")
    myValue_4 = InputBox("Fill in BSN", "BSN Employee")

    For Each tbl in Worksheets("Staff").ListObjects
        Set newrow = tbl.ListRows.Add

        With newrow
            .Range(1) = myValue_2
            .Range(2) = myValue_3
            .Range(3) = myValue_4 
        End With
    Next

End Sub
0 голосов
/ 01 апреля 2020

Благодаря BigBen я начал работать со следующим кодом:

Sub Test()

Dim the_sheet As Worksheet
Dim tbl As ListObject
Dim NewRow As ListRow

myValue_2 = InputBox("Fill in name", "Name Employee")
myValue_3 = InputBox("Fill in birth date", "Birth Date Employee")
myValue_4 = InputBox("Fill in BSN", "BSN Employee")

For Each tbl In Worksheets("Staff").ListObjects
    Set NewRow = tbl.ListRows.Add
    With NewRow
        .Range(1) = myValue_2
        .Range(2) = myValue_3
        .Range(3) = myValue_4
    End With
Next tbl
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...