VBA, как скопировать во вторую последнюю ячейку в таблице? - PullRequest
0 голосов
/ 10 января 2019

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

Worksheets("Mobile Summary").Range("A4:F482").Copy 
Worksheets("Sheet1").Range("A1:F479")

Однако мне нужно скопировать и вставить больше данных из другой сводной таблицы прямо под этим. Поэтому я не мог просто установить строки в 3000, например. Я знаю, что есть код для поиска последней строки, хотя я и не знаю, как решить эту проблему.

1 Ответ

0 голосов
/ 10 января 2019

Чтобы найти сводную таблицу по ее имени и удалить последнюю строку таблицы, используйте свойство Range.Resize . Это полезно, если на листе имеется более одной сводной таблицы.

Option Explicit

Sub CopyPivotTableWithoutLastRow()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Tabelle3")

    Dim i As Long
    For i = 1 To ws.PivotTables.Count 'loop throug all pivot tables

        If ws.PivotTables(i).name = "PivotTable1" Then 'determine pivot table by its name
            With ws.PivotTables(i).TableRange1 '= full table
                .Resize(RowSize:=.Rows.Count - 1).Copy 'resize to remove last row then copy
            End With
        End If

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