Страницы: 1
RSS
Сводная таблица. Ошибка run-time error 5
 
Добрый день!    
Подскажите, пожалуйста... вот на этой строчке выдает ран тайм 5:  
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _  
       "Лист2!r1c1:r350c8", Version:=xlPivotTableVersion12). _  
       CreatePivotTable TableDestination:="Лист1!r1c1", TableName:= _  
       "Сводная таблица1", DefaultVersion:=xlPivotTableVersion12  
записал рекордером но при прогоне выдает ошибку
 
Lamer, прикрепи пример
Excel всемогущий.
 
{quote}{login=Lamer}{date=08.12.2011 11:25}{thema=Сводная таблица. Ошибка run-time error 5}{post}Добрый день!    
Подскажите, пожалуйста... вот на этой строчке выдает ран тайм 5:  
записал рекордером но при прогоне выдает ошибку{/post}{/quote}  
так может там уже есть сводная таблица, а вы на неё еще одну накладываете, вот и ошибку выдает. Если так, то удалите предыдущую сводную таблицу да и запустите записанное.  
Думаю, что так.
 
agregator => если выложу пример то меня уволят сразу:) запрет на отсылку файлов.  
 
wilddaemon => неее, там чистый лист. пробовал даже удалять лист, закрывать эксель и заново прогонять, все равно выдает ошибку. В другом макросе смотрю, код идентичный и все работает.  
 
Просто то что только что было записано рекордером сразу же и не работает. При чем я уже с этим сталкивался но не помню как я от этого избавился...
 
{quote}{login=Lamer}{date=08.12.2011 05:12}{thema=}{post}  
wilddaemon =>  В другом макросе смотрю, код идентичный и все работает.  
 
{/post}{/quote}  
может попробовать словить ошибку и вызвать Err.Description? Может тогда что-то проясниться?
 
{/post}{/quote}  
может попробовать словить ошибку и вызвать Err.Description? Может тогда что-то проясниться?{/post}{/quote}  
 
А с этого места поподробнее можно? Как сие осуществить?
 
в начале вашего кода (например перед строкой, которая выдает ошибку) поставить    
 
On Error GoTo Errorcatch  
 
«ваш код»  
 
Exit Sub  
Errorcatch:  
MsgBox Err.Description  
End Sub
 
{quote}{login=wilddaemon}{date=08.12.2011 05:45}{thema=Re: Re: Re: }{post}в начале вашего кода (например перед строкой, которая выдает ошибку) поставить    
 
On Error GoTo Errorcatch  
 
«ваш код»  
 
Exit Sub  
Errorcatch:  
MsgBox Err.Description  
End Sub{/post}{/quote}  
 
 
Пишет  invalid procedure call or argument.  
То есть тот самый ран-тайм 5
 
Это я чуть выше писал:)
 
А вы прикрепите маленький пример без секретной информации. Таблицу заполните словами: яблоки, апельсины, мандарины, тыквы и выложите её тут
 
{quote}{login=}{date=08.12.2011 05:57}{thema=}{post}А вы прикрепите маленький пример без секретной информации. Таблицу заполните словами: яблоки, апельсины, мандарины, тыквы и выложите её тут{/post}{/quote}  
 
Да у меня и в этой нет секретной информации. но сам факт передачи файла доставит мне кучу проблем:)
 
Отправьте из дома.
 
а может проблема не вэтой строке? я вот банально скопировал в новую книгу эту часть кода и всё создаётся.  
Может быть немного приоткрыть завесу над остальным содержимым кода? Может быть там следует рыться?
 
{quote}{login=wilddaemon}{date=08.12.2011 06:07}{thema=Re: Re: }{post}а может проблема не вэтой строке? я вот банально скопировал в новую книгу эту часть кода и всё создаётся.  
Может быть немного приоткрыть завесу над остальным содержимым кода? Может быть там следует рыться?{/post}{/quote}  
 
Подсвечивается эта строка. но проблема похоже и правда не тут. сейчас удалил раскидывание по полям внутри сводной и спокойно эта строка отработала. Значит проблема где то тут:  
 
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _  
       "turn_allEXCEL!R1C1:R324C7", Version:=xlPivotTableVersion12). _  
       CreatePivotTable TableDestination:="Свод!R1C1", TableName:= _  
       "СводнаяТаблица3", DefaultVersion:=xlPivotTableVersion12  
   Sheets("Свод").Select  
   Cells(1, 1).Select  
   With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Наименование")  
       .Orientation = xlRowField  
       .Position = 1  
   End With  
   With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")  
       .Orientation = xlRowField  
       .Position = 2  
   End With  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица3").PivotFields("Исходящий (Д)"), "Сумма по полю Исходящий (Д)" _  
       , xlSum  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица3").PivotFields("Исходящий (К)"), "Сумма по полю Исходящий (К)" _  
       , xlSum  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица3").PivotFields("Итого"), "Сумма по полю Итого", xlSum
 
На самом деле путаницы с наименованиями таблиц нет, везде при обработке одинаково.    
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _  
       "turn_allEXCEL!R1C1:R324C7", Version:=xlPivotTableVersion12). _  
       CreatePivotTable TableDestination:="Свод!R1C1", TableName:= _  
       "СводнаяТаблица3", DefaultVersion:=xlPivotTableVersion12  
   Sheets("Свод").Select  
   Cells(1, 1).Select  
   With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Наименование")  
       .Orientation = xlRowField  
       .Position = 1  
   End With  
   With ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields("Номер")  
       .Orientation = xlRowField  
       .Position = 2  
   End With  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица1").PivotFields("Исходящий (Д)"), "Сумма по полю Исходящий (Д)" _  
       , xlSum  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица1").PivotFields("Исходящий (К)"), "Сумма по полю Исходящий (К)" _  
       , xlSum  
   ActiveSheet.PivotTables("СводнаяТаблица1").AddDataField ActiveSheet.PivotTables _  
       ("СводнаяТаблица1").PivotFields("Итого"), "Сумма по полю Итого", xlSum
 
Я что-то не понял ... когда создаете сводную - ее имя СводнаяТаблица3, а дальше по коду - СводнаяТаблица1  
.. я что-то пропустил? .. или здесь ошибка?
 
{quote}{login=wilddaemon}{date=08.12.2011 06:23}{thema=Re: }{post}Я что-то не понял ... когда создаете сводную - ее имя СводнаяТаблица3, а дальше по коду - СводнаяТаблица1  
.. я что-то пропустил? .. или здесь ошибка?{/post}{/quote}  
 
Неее, имена везде одинаковые, просто решил поменять циферки а в создании не поменял
 
ну я даже не знаю...  
попробуй тогда перед строкой ошибки написать    
 
on error resume next    
 
.. а так действительно, без файла и не разобраться ... у меня например ваш код отработал без ошибок. Может быть тогда дело в данных внутри исходной таблицы (форматы там или еще что.. .может там текст какой-то затисался) ... Попробуйте в вашем файле удалить все данные на листе turn_allEXCEL кроме заголовков и посмотрите что будет..
 
Похоже самый простой вариант будет заключаться в том что я приду домой сделаю аналогичный файл и выложу его сюда. Хотя не удивлюсь если дома у меня все будет работать:)))
 
{quote}{login=wilddaemon}{date=08.12.2011 06:41}{thema=Re: Re: Re: }{post}ну я даже не знаю...  
попробуй тогда перед строкой ошибки написать    
 
on error resume next    
 
.. а так действительно, без файла и не разобраться ... у меня например ваш код отработал без ошибок. Может быть тогда дело в данных внутри исходной таблицы (форматы там или еще что.. .может там текст какой-то затисался) ... Попробуйте в вашем файле удалить все данные на листе turn_allEXCEL кроме заголовков и посмотрите что будет..{/post}{/quote}  
 
 
 
У меня сейчас в данных присутствует текст и числа. Даже и не знаю в чем проблема может быть. ведь при рекордере все спокойно делается и не возникает никаких проблем. но если тут же прогоняю код в ВБА то появляется ошибка.
 
вот пример с Вашим кодом! все работает.  
если ошибка на первой строке кода, возможно это из-за того что столбцов исходных данных меньше 7. или сводная с таким именем уже существует!  
попробуйте!
 
а вот еще пример.    
может пригодится.  
без листа Свод!
 
)))    
и еще пример.  
удобнее!
 
{quote}{login=AKSENOV048}{date=08.12.2011 07:22}{thema=}{post})))    
и еще пример.  
удобнее!{/post}{/quote}  
 
 
Спасибо! Все работает! Теперь только так и буду прописывать сводные таблички!
 
AKSENOV048 и wilddaemon спасибо Вам огромное за помощь:)
Страницы: 1
Читают тему
Наверх