Попытка назвать диапазон "PK" и создать сводную таблицу с этим диапазоном. Когда я запускаю этот код, я получаю ошибку времени выполнения 91. Код, предшествующий этому биту, создает новую книгу из шаблона, поэтому все вкладки предварительно настроены, если это имеет смысл.
Создает динамический диапазон для использования длясводная таблица
Dim pkrange As Range
Dim LastRow As Long
Dim Lastcol As Long
Dim pksheet As Worksheet
Dim startcell As Range
Dim pk As String
Set pksheet = ActiveWorkbook.Worksheets("Last PK Data")
Set startcell = pksheet.Range("A1")
LastRow = pksheet.Cells(pksheet.Rows.Count, startcell.Column).End(xlUp).Row
Lastcol = pksheet.Cells(startcell.Row, pksheet.Columns.Count).End(xlToLeft).Column
Set pkrange = Range(startcell, pksheet.Cells(LastRow, Lastcol))
pk = "PK"
pksheet.Names.Add Name:=pk, RefersTo:=pkrange
наборы сводной таблицы
Dim PKpvtable As PivotTable
Dim PKpvCache As PivotCache
Dim PKstartPvt As String
Dim PKsrcData As String
PKsrcData = ActiveWorkbook.Worksheets("Last PK Data").Range("PK").Address(ReferenceStyle:=xlR1C1)
PKstartPvt = ActiveWorkbook.Worksheets("Pivot table").Range("A1").Address(ReferenceStyle:=xlR1C1)
Set PKpvCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, PKsrcData)
Set PKpvtable = PKpvCache.CreatePivotTable(PKstartPvt, "PivotTable1")