Создать список со значениями из нескольких листов Excel - PullRequest
0 голосов
/ 07 января 2020

Я работаю над кодом VBA, который будет запускаться через раскрывающееся меню на листе "voorblad".

Для каждого значения в раскрывающемся меню я хочу скопировать значение "Voorblad" .range "K9" и «Вычисление». Поместите «G35» и вставьте его в лист с именем «LIST Sheet».

VBA предназначен для создания списка всех значений.

Sub CreateList()

Dim Answer As VbMsgBoxResult

Answer = MsgBox("Validation message!", vbYesNoCancel, "CreateList")

If Answer = vbYes Then

    Application.ScreenUpdating = False

    With Sheets("Voorblad").Range("K9").Validation
        For Each rCell In Range(.Formula1)
            .Parent.Value = rCell.Value

            Sheets("Voorblad").Select
            Range("K9").Select
            ActiveCell.Copy
            Sheets("LIST Sheet").Select
            Range("B2").Select
            Selection.PasteSpecial Paste:=xlPasteValues
            Sheets("LIST Sheet").Select
            ActiveCell.Offset(1, 0).Select

            Sheets("Calculation").Select
            Range("G35").Select
            ActiveCell.Copy
            Sheets("LIST Sheet").Select
            Range("G2").Select
            Selection.PasteSpecial Paste:=xlPasteValues
            Sheets("LIST Sheet").Select
            ActiveCell.Offset(1, 0).Select

        Next rCell
        .Parent.Value = ""

    End With

    Application.ScreenUpdating = True

    MsgBox "Export geslaagd! Het PDF is opgeslagen in jouw Documenten"
End If

End Sub

VBA Код не создает список. Каждый раз, когда макрос проходит через код, он будет повторно выбирать предварительно выбранные ячейки в диапазоне («B2») и диапазоне («G2»). Я хочу, чтобы он вставил значения на одну строку вниз. В конце концов это должно создать список.

1 Ответ

0 голосов
/ 07 января 2020

Для правильного создания списка вам необходимо убедиться, что вы переходите к следующей пустой ячейке на целевом листе (Лист). Попробуйте что-то вроде

Sheets("LIST Sheet").Range("G2").End(XLdown).Offset(1,0).PasteSpecial Paste:=xlPastValues

Это должно поместить значение в следующую пустую ячейку. То же самое с колонкой G

HTH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...