Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 11:08   #1
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию Вычислить диапазон в сводной таблице

Здравствуйте. Записала макрос создания сводной таблицы. В макросе четко прописан диапазон исходной таблицы:
Код:
"Лист1!R1C1:R22285C12"
Как записать, чтобы последняя строка высчитывалась сама, а не фиксировано?
kipish_lp вне форума Ответить с цитированием
Старый 19.04.2010, 11:22   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

как-то так:
Код:
=смещ(Лист1!R1C1;;;счетз(Лист1!C1);12)
разве что вместо Лист1!С1 надо указать колонку, в которой заполнены все ячейки
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 19.04.2010 в 11:25.
IgorGO вне форума Ответить с цитированием
Старый 19.04.2010, 12:11   #3
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

Это наверное в диалоговом окне мастера создания сводных таблиц? А как в макросе?
kipish_lp вне форума Ответить с цитированием
Старый 19.04.2010, 13:47   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    ' перед заменяемой строкой добавляем это:
    ПоследняяСтрока = Лист1.Cells(Лист1.Rows.Count, 1).End(xlUp).Row

    ' а потом (в проблемной строке) заменяем это
    "Лист1!R1C1:R22285C12"
    ' на это
    "Лист1!R1C1:R" & ПоследняяСтрока & "C12"
End Sub

PS: Если будет определять последнюю строку неправильно,
замените
ПоследняяСтрока = Лист1.Cells(Лист1.Rows.Count, 1).End(xlUp).Row
на
ПоследняяСтрока = Лист1.Cells(Лист1.Rows.Count, 12).End(xlUp).Row

(эта цифра определяет номер столбца, по которому мы вычисляем последнюю заполненную строку)
EducatedFool вне форума Ответить с цитированием
Старый 19.04.2010, 16:18   #5
kipish_lp
Форумчанин
 
Регистрация: 25.11.2009
Сообщений: 113
По умолчанию

Спасибо! Работает!
kipish_lp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в сводной таблице ElenaNTro Microsoft Office Excel 7 06.04.2010 19:42
график по сводной таблице BaddyV Microsoft Office Excel 3 22.10.2009 17:21
сортировка в сводной таблице mistx Microsoft Office Excel 18 30.03.2009 21:56
макросом обновить диапазон сводной Dorvir Microsoft Office Excel 4 28.09.2008 23:28