Вставка диапазона от сводной таблицы до другого листа - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь получить уникальный диапазон из листа A (сводная таблица, в которой обобщены мои данные на нерелевантном мастер-листе), чтобы вставить на другой лист лист B (новый пустой лист). Ниже мой код для этого. Я получаю ошибку во время выполнения "Не удалось выполнить метод AdvancedFilter класса Range". Я буквально пытался все в течение нескольких часов и не знаю, что еще делать.

Public Function FindRow(ByVal sht As Worksheet, ByVal r As Long, ByVal c As Long, ByVal Match As Variant) As Long

    Do While Cells(r, c) <> Match
    r = r + 1
    Loop

    FindRow = r

End Function

Sub ExtractFromPivot()

    Dim PivotSheet As Worksheet
    Dim RandomSheet As Worksheet
    Dim Newsheet As Worksheet
    Dim Newbook As Workbook
    Dim Fundname As String
    Dim FilePath As String
    Dim Copyrange As String
    Dim fr As Long
    Dim lr As Long

    Set RandomSheet = ThisWorkbook.Worksheets.Add
    Set PivotSheet = ThisWorkbook.Worksheets("Extract Pivot")

    'Clears all filters on 'Name' (believe me I tried .clearallfilters
    With ThisWorkbook.SlicerCaches("Slicer_Client_Name")
        .SlicerItems("a").Selected = True
        .SlicerItems("b").Selected = True
        .SlicerItems("c").Selected = True
    End With


    lr = FindRow(PivotSheet, 30, 1, "")
    Let Copyrange = "A31" & ":" & "A" & lr

    PivotSheet.Range(Copyrange).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=RandomSheet.Cells(1, 1), Unique:=True
...