Страницы: 1
RSS
Создание сводной таблицы из исходного листа, в котором меняются данные, ошибка в макросе
 
Создание сводной таблицы из исходного листа, в котором постоянно меняются данные, но сейчас выдаёт ошибку,
раньше макрос на сводную таблицу работал нормально, пока что-то не поменяли в исходном файле, после этого начала выходить ошибка - Run-time error '1004' на строке 21, помогите пожалуйста понять, что мешает работе макроса
Код
Sub PIVOTOrder()Dim rngData As Range 
Dim rngDataP As Range 
Dim shtSvodka As Worksheet 
Dim Nrow As Long, Ncol As Long   ' число строк и столбцов 
Dim rngFirst As Range, rngLast As Range   'первая и последняя ячейка 
Dim rngS As Rangе[/P] 
Call ClearPIVOTOrder

'1 - Диапазон с данныим 
Set rngData = ThisWorkbook.Worksheets("Order").UsedRange

Set shtSvodka = ThisWorkbook.Worksheets("OrderPivot")

' 2 - кэш сводной таблицы 
Dim PTCache As PivotCache 
Set PTCache = ThisWorkbook.PivotCaches.Create(xlDatabase, rngData) 
' 3 - добавить сводную таблицу

Dim PT As PivotTable

Set PT = PTCache.CreatePivotTable(shtSvodka.Range("A1")) ' здесь возникает ошибка 
' 4 - поля сводной таблицы 
PT.AddFields RowFields:="Customer", ColumnFields:="DueDatePeriod", PageFields:="Level" 
With PT.PivotFields("Unic #") 
.Orientation = xlRowField 
.Position = 2 
End With

[P]' 5 - поля значений 
With PT.PivotFields("QtyOpen") 
.Orientation = xlDataField 
.Function = xlSum 
End With
Изменено: seregamer - 19.09.2017 19:58:21
 
Проверьте наименование листа OrderPivot
 
В сообщении об ошибке написано, что недопустимое имя поля. Предположу, что пользователь переименовал имя поля.
 
добрый день всем, спасибо всем за помощь, сообщение от Karataeva натолкнуло на мысль проверить строку заголовка исходного файла, выяснилось, что в конце всей таблицы( а она не маленькая) были добавлены несколько новых столбцов, но ведь это не проблема, но оказалось, что проблема, перед этими столбцами был совершенно пустой столбец, после удаление которого и заработало всё как раньше. я думал, что CurrentRegion срабатывает до пустоты и пивот соберётся без тех новых столбцов, оказывается нет, видимо пивот не хотел поэтому создаваться, говоря, мол ты мне CurrentRegion указал, а после него ещё там что-то есть, а вдруг тебе понадобится, давай возьмём в пивот)))))).
 
Цитата
seregamer написал: я думал, что CurrentRegion
Код
Set rngData = ThisWorkbook.Worksheets("Order").UsedRange
В чем подвох?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
В чем подвох?
Если в столбце нет заголовка, то сводная не создаётся
 
Цитата
Sanja написал:
1Set rngData = ThisWorkbook.Worksheets("Order").UsedRangeВ чем подвох?
извиняюсь, видимо выложил код, который пробовал с UsedRange, изначальный код был с CurrentRegion, но и с ним не работает пивот, если заголовок пустой.
Страницы: 1
Читают тему
Наверх