Модераторы: mihanik
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Создание сводной таблицы, VBA MS Excel 2007 
V
    Опции темы
Lapochka
  Дата 22.10.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 10.10.2005
Где: Москва

Репутация: 1
Всего: 1



Есть следующая процедура.

Код

dim sh_vint as worksheet
dim sh_deb as worksheet

sub vintaj()
set sh_vint = worksheets("Vintage - возникновение")
set sh_deb = worksheets("Debtor")

' определяю границы таблицы, данные которой являются исходными для сводной
rows_deb = sh_deb.range("a1").CurrentRegion.Rows.Count
cols_deb = sh_deb.range("a1").CurrentRegion.Columns.Count
Deb_table = "Debtor!R1C1:R" + CStr(rows_deb) + "C" + CStr(cols_deb)

' определяю место вывода сводной таблицы (на самом деле там алгоритм, но для примера выберу конкретную ячейку)
row_t = 93
col_t = 2
place_table = "Vintage - возникновение!R" + CStr(row_t) + "C" + CStr(col_t)

ActiveWorkbook.PivotCaches.Create(SoureceType:=xlDatabase, SourceData:=Deb_table, _
                            Version:=xlPivotTableVersion12).CreatePivotTable _
                            TableDestination:=place_table, _
                            TableName:="Vintag_begin", DefaultVersion:=xlPivotTableVersion12

sh_vint.select
cells(row_t,col_t).select
activeWorkbook.ShowPivotTableFieldList = True

' и далее вывожу строки, столбцы и значения

end sub


Забивается на кэше. Выдают ошибку: "Invalid procedure call or argument!"

Я планирую эту процедурку сделать функцией, т.к. подобная вещь будет несколько раз делаться, только с немного разными параметрами.
Не хочется одно и то же писать по 150 раз.
Хелп ми. как исправить?  smile 
PM MAIL WWW ICQ   Вверх
Akina
Дата 22.10.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Lapochka @  22.10.2008,  17:32 Найти цитируемый пост)
Забивается на кэше. Выдают ошибку: "Invalid procedure call or argument!"

А теперь, пожалуйста, укажите номер строки. ЦИФРОЙ.

Добавлено через 4 минуты и 14 секунд
PS. Если это строка 18 - то у вас там тривиальная опечатка. В имени первого параметра.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lapochka
Дата 22.10.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 10.10.2005
Где: Москва

Репутация: 1
Всего: 1



тьфу блин. заработалась. не на ту кнопку нажала, чтоб мессагу отправить.

в общем ошибка на 18 строке.
в коде написано правильно. просто у нас на раб компах нет доступа к инету приходится тут весь код вручную набирать.

пыталась сделать по-другому, как в книжке.
но он категорически отказывается создавать объект range
PM MAIL WWW ICQ   Вверх
Akina
Дата 22.10.2008, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Поделите эту строку на две:
Код
dim pvc as PivotCache
Set pvc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Deb_table, Version:=xlPivotTableVersion12)
pvc.CreatePivotTable TableDestination:=place_table, TableName:="Vintag_begin", DefaultVersion:=xlPivotTableVersion12

Где будет ошибка?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Lapochka
Дата 23.10.2008, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 10.10.2005
Где: Москва

Репутация: 1
Всего: 1



возникла ошибка в 3 строке. 
указала в результате вместо place_table конечную ячейку sh_vint.cells(row_t,col_t)

Код

dim pvc as PivotCache
Set pvc = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=Deb_table, Version:=xlPivotTableVersion12)
pvc.CreatePivotTable TableDestination:=sh_vint.cells(row_t,col_t), TableName:="Vintag_begin", DefaultVersion:=xlPivotTableVersion12


в этом случае сработало!

также делала немного другим способом.
все равно если в параметре TableDestination выводить place_table , то не срабатывает.
нужно задать ему какой-то тип. попробовала несколько, ничего не получилось.
легче, наверное, сразу писать тогда ячейку.


и у меня еще 1 вопрос.
при создании сводной, указывается, что выводить в строках, столбцах и значениях.
есть такое свойство как pivotitems.

предположим в строках выводится по датам.
но мне нужны не все даты, а с определенного числа.
попыталась сделать параметр my_item, в цикле задавать ему значения и делать 
Код

PivotItems(my_item).visible = false

однако, если он начинается проходиться по тем данным, которых нет в итемах, выдается ошибка.
как мне получить список итемов?
PM MAIL WWW ICQ   Вверх
Lapochka
Дата 24.10.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 10.10.2005
Где: Москва

Репутация: 1
Всего: 1



 smile  в новый топик
PM MAIL WWW ICQ   Вверх
mihanik
Дата 26.10.2008, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 9
Всего: 109



Модератор: 
Lapochka, а самой трудно создать новую тему рядом?
И зачем вызывать джина-модератора кнопкой репорта по таким мелочам?
Или я чего-то не понимаю, или одно из двух...

А тему пока прикрою...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0717 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.