2014-11-19 4 views
1

Может кто-нибудь объяснить, почему я не могу использовать диапазон с более чем 65535 строк с исходными данными при использовании метода PivotCaches.Create?PivotCaches.create with SourceData, превышающий 65535 строк

Я использую Excel 2013, также используя Версия: = xlPivotTableVersion14 (что соответствует xl 2010, если я не ошибаюсь).

Я прочитал, я могу использовать диапазон имен для решения проблемы, но просто хочу знать любую ссылку, почему текущий код не работает? Тот же код работает, если я просто установил rng с количеством менее 65535 строк.

Set ws = Worksheets("mydata") 
Set rng = ws.Range("A1:C66000") 

'Set rng = ws.Range("A1:C65000") THIS WORKS 

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=DataRange, Version:=xlPivotTableVersion14).CreatePivotTable _ 
     TableDestination:=Worksheets("pvot").Range("A1"), TableName:="mypv", DefaultVersion:=xlPivotTableVersion14 

ОШИБКА: Ошибка 13, Тип Несовпадение

ответ

1

Я не могу это объяснить. Я подозреваю, что это как-то связано с устаревшим кодом и проблемой CountLarge. Но я могу предложить обходной путь.

Все, кажется, работает, как ожидалось, если вместо

SourceData:=Rng 

вы бы использовать

SourceData:=Rng.Worksheet.Name & "!" & Rng.Address 

Это выражение действительно имеет значение строки

"mydata!$A$1:$C$65000" 

и это то, что 2013 макрос Excel используется при записи команды INSERT → Pivot Table

Смежные вопросы