2014-09-16 6 views
1

Я новичок в VBA. Я пытаюсь создать сводную таблицу для очень большой записи (около 30K Record). Это мой код для создания сводной таблицы. при создании сводной таблицы он выдает ошибку как «несоответствие типа». Он отлично работал для небольшого набора записей.Несоответствие типа во время создания сводной таблицы: Excel vba

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=rngData, _ 
Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=wsPvtTbl.Range("A1"), _ 
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion12 

Пожалуйста, помогите мне в этом. Заранее спасибо

+1

Попробуйте использовать диапазон адресов, а не объект Range для 'SourceData' аргумента. – Rory

+0

Это сработало. Но я сейчас закодировал диапазон. Мне нужно динамически вводить диапазон на основе ввода? – kayle

ответ

3

Вы можете использовать что-то подобное с переменной rngData:

ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="'" & rngData.Worksheet.name & "'!" & rngData.Address(referencestyle:=xlR1C1), _ 
Version:=xlPivotTableVersion12).CreatePivotTable TableDestination:=wsPvtTbl.Range("A1"), _ 
TableName:="PivotTable1", DefaultVersion:=xlPivotTableVersion12 
+0

Это сработало. Большое вам спасибо :) – kayle

+0

Это помогло мне и после нескольких дней, проведенных, пытаясь понять это! –

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