На моем листе Excel сводная таблица копируется из другого файла каждый месяц, поэтому имя будет меняться каждый раз, когда новая сводная таблица копируется на мою рабочую таблицу.Я хочу использовать макрос для установки фильтра сводной таблицы, но не знаю, как ссылаться на таблицу, не зная имени.Я использую код ниже, иногда он работает, но иногда приходит с ошибкой.Не могли бы вы посмотреть, есть ли какая-либо ошибка в моем коде?или если есть другое решение для моей ситуации?
Другая проблема заключается в том, что мой код настраивает две сводные таблицы на двух листах, однако код иногда (в большинстве случаев) работает только на одном листе.Любое тело знает причину?
Sub getdeb()
Dim irfile As String
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim ws3 As Worksheet
Dim ws4 As Worksheet
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Please select a file"
.ButtonName = "Select"
.InitialFileName = "C:\"
If .Show = -1 Then
irfile = .SelectedItems(1)
Set wbtarget = ThisWorkbook
Set wbsource = Workbooks.Open(irfile)
Set ws1 = wbsource.Sheets("NN Re inzake ART Non-Life")
Set ws2 = wbsource.Sheets("NN Re inzake ART Life")
ws2.Cells.Copy Destination:=wbtarget.Sheets("Life").Range("A1")
ws1.Cells.Copy Destination:=wbtarget.Sheets("NonLife").Range("A1")
wbsource.Close
Else
MsgBox "No file was selected"
End If
End With
With ThisWorkbook
Set ws3 = Sheets("Life")
Set ws4 = Sheets("NonLife")
ws3.Cells.Clear
ws4.Cells.Clear
End With
With ws3
With ActiveCell.PivotTable.PivotFields("GAUDI rubriek")
.PivotItems("A_INT_RENTS_ACCR ").Visible = False
.PivotItems("A_OTH_ACCR_ASSETS ").Visible = False
.PivotItems("L_COST_PAYABLE ").Visible = False
.PivotItems("L_CRED_DIR ").Visible = False
.PivotItems("L_CRED_OTH_3P ").Visible = False
.PivotItems("L_CRED_OTH_IC ").Visible = False
.PivotItems("L_CRED_REINS_IC ").Visible = False
.PivotItems("L_DEF_TAX_LIAB ").Visible = False
.PivotItems("L_INCOME_TAX ").Visible = False
.PivotItems("L_INT_RENTS_ACCR ").Visible = False
.PivotItems("L_OTH_PROV ").Visible = False
.PivotItems("A_TAX_REC ").Visible = False
.PivotItems("L_CRED_REINS_3P ").Visible = False
End With
With ActiveCell.PivotTable.PivotFields("Issuer")
.ClearAllFilters
.EnableMultiplePageItems = True
.PivotItems(" ").Visible = False
End With
.Range("N9") = "GRID Mapping DvS"
.Range("O9") = "GRID Name Mapping DvS"
.Range("P9") = "Country Mapping DvS"
.Range("Q9") = "Instrument ID DvS added"
.Range("R9") = "Country Mapping DvS2"
.Range("R9") = "Thomson-Reuters id"
.Range("Q10") = "=$B10&"" ""&$A10"
.Range("N10:R100").FillDown
End With
With ws4
With ActiveCell.PivotTable.PivotFields("GAUDI rubriek")
.PivotItems("A_INT_RENTS_ACCR ").Visible = False
.PivotItems("A_OTH_ACCR_ASSETS ").Visible = False
.PivotItems("L_COST_PAYABLE ").Visible = False
.PivotItems("L_CRED_DIR ").Visible = False
.PivotItems("L_CRED_OTH_3P ").Visible = False
.PivotItems("L_CRED_OTH_IC ").Visible = False
.PivotItems("L_CRED_REINS_IC ").Visible = False
.PivotItems("L_DEF_TAX_LIAB ").Visible = False
.PivotItems("L_INCOME_TAX ").Visible = False
.PivotItems("L_INT_RENTS_ACCR ").Visible = False
.PivotItems("L_OTH_PROV ").Visible = False
.PivotItems("A_TAX_REC ").Visible = False
.PivotItems("L_CRED_REINS_3P ").Visible = False
End With
With ActiveCell.PivotTable.PivotFields("Issuer")
.ClearAllFilters
.EnableMultiplePageItems = True
.PivotItems(" ").Visible = False
End With
.Range("N9") = "GRID Mapping DvS"
.Range("O9") = "GRID Name Mapping DvS"
.Range("P9") = "Country Mapping DvS"
.Range("Q9") = "Instrument ID DvS added"
.Range("R9") = "Country Mapping DvS2"
.Range("R9") = "Thomson-Reuters id"
.Range("N10:R500").FillDown
.Calculate
End With
End Sub