Я пытаюсь получить уникальный диапазон из листа 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