0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 2
1

Создание сводной таблицы из массива более 65536 строк на VBA

26.11.2018, 19:29. Показов 3021. Ответов 4

Студворк — интернет-сервис помощи студентам
Прошу помочь со следующей дилеммой.
Написал макрос для обработки массива базы данных с формирование сводной таблицы.
При размере базы данных менее 65536 строк макрос работает без проблем.
При превышении указанной размерности марос при формировании сводной таблицы выдает ошибку.

На листе Data содержатся исходные данные для обработки ̣диапазона (B2:ilastcoumnilastrow)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Macrọ()
Dim Pivot As Worksheet
 
Set Pivot = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(1)): Pivot.Name = "Pivot'
 
With Sheets("Data").Select
   ilastrow = Cells(Rows.Count, 2).End(xlUp).Row
   ilastcolumn = Cells(2, Columns.Count).End(xlToLeft).Column
   Set PivotAll_Data = Worksheets("Data").Range(Cells(2, 2), Cells(ilastrow, ilastcolumn))
End With
 
ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PivotAll_Data).CreatePivotTable TableDestination:=Pivot.Cells(2, 2), TableName:="Pivot"
 
End Sub()
Насколько я понимаю ошибка 13 ̣̣(type mismatch) появляется на этапе передачи исходного диапазона для формирования сводной таблицы.
Много гуглил, но предлагаемые решения не смог применить. Потратил много времени и теперь решил обратиться за советом к экспертам.

Спасибо за помощь!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2018, 19:29
Ответы с готовыми решениями:

Записать на лист более 65536 строк
Возникла необходимость записи более 65536 строк на лист. Excel выкидует ошибку...

Суммеслимн в VBA, аналог сводной таблицы
Добрый день! Есть лист с данными в виде таблицы. По ключевым столбцам нужно сформировать подобие...

Доступ к значениям сводной таблицы через VBA
Вопрос 1. С помощью каких методов и свойств Pivot Table в VBA можно получить доступ к значению...

Создание сводной таблицы
Имеем в наличии несколько таблиц за каждый месяц из наименований товаров и цен на них за несколько...

4
6919 / 2829 / 543
Регистрация: 19.10.2012
Сообщений: 8,644
26.11.2018, 19:52 2
With Sheets("Data").Select
End With
вообще лишнее, ибо никак не используете.
Может это и есть причина ошибки, кто знает...

Хотя если этот лист всёж реально активируется - то некое влияние это оказывает, опосредованно...
0
4044 / 1430 / 394
Регистрация: 07.08.2013
Сообщений: 3,571
27.11.2018, 01:00 3
ограничения в 65536 строк были в старых офисах и файлах типа xls
в файлах xlsx xlsm и более молодых офисах - начиная с 2007 эта цифра увеличилась
0
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 2
27.11.2018, 04:10  [ТС] 4
Сам спросил - сам ответил.

Sheets("data").select выделяется, т.к. в процессе макроса идет переключения между листами для работы с именованными диапазонами. Эксель у меня стоит 2013, формат кинги banary workbook.

Visual Basic
1
2
3
4
5
With Sheets("Data").Select
   ilastrow = Cells(Rows.Count, 2).End(xlUp).Row
   ilastcolumn = Cells(2, Columns.Count).End(xlToLeft).Column
   PivotAll_Data = Range(Cells(2, 2), Cells(ilastrow, ilastcolumn))[B][U].address[/U][/B]
End With
Всем поучаствовавшим - спасибо
0
6919 / 2829 / 543
Регистрация: 19.10.2012
Сообщений: 8,644
27.11.2018, 11:17 5
Выделение листа/диапазона - лишнее действие, жрущее время и деньги...
Visual Basic
1
2
3
4
5
With Sheets("Data")
   ilastrow = .Cells(.Rows.Count, 2).End(xlUp).Row
   ilastcolumn = .Cells(2, .Columns.Count).End(xlToLeft).Column
   PivotAll_Data = Range(.Cells(2, 2),.Cells(ilastrow, ilastcolumn)).address
End With
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2018, 11:17
Помогаю со студенческими работами здесь

Создание сводной таблицы
Задание следующие : Создать сводную таблицу, выводящую для данного курса и факультета суммарный...

Создание сводной таблицы
Всем привет! Помогите с проблемкой). Во вложенном файле пример таблицы. Суть вопроса в следующем....

Создание сводной таблицы
Доброго времени суток. Ребят, подскажите пожалуйста как правильно должны выглядеть таблицы, чтобы...

Создание аналога сводной таблицы
есть ексель 2007. нужно создать аналог сводной таблицы, но именно сводная не подходит из-за...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru