Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/как передать диапазон умной таблицы в функцию VBA? - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как передать диапазон умной таблицы в функцию VBA? (Макросы/Sub)
как передать диапазон умной таблицы в функцию VBA?
K-SerJC Дата: Четверг, 14.09.2017, 19:32 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 38 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток друзья!
есть такая рабочая конструкция
[vba]
Код
Me.Range("K4").Value = СчетВечерних(Sheets("Планы СБиПАЗ").Range("СБиПАЗ[6]"), Me.Range("K1").Value, "$K$4")
[/vba]
её суть в функцию "СчетВечерних" передает диапазон из 6 столбца умной таблицы - СБиПАЗ[6]
сама таблица лежит на листе "Планы СБиПАЗ" соответсвенно
как запустить этот же диапазон, без указания конкретного листа где лежит сама таблица

т.е. первый параметр функции принимает переменную as range, в нее надо положить СБиПАЗ[6] не указывая Sheets("Планы СБиПАЗ")


Благими намерениями выстелена дорога в АД.
 
Ответить
СообщениеДоброго времени суток друзья!
есть такая рабочая конструкция
[vba]
Код
Me.Range("K4").Value = СчетВечерних(Sheets("Планы СБиПАЗ").Range("СБиПАЗ[6]"), Me.Range("K1").Value, "$K$4")
[/vba]
её суть в функцию "СчетВечерних" передает диапазон из 6 столбца умной таблицы - СБиПАЗ[6]
сама таблица лежит на листе "Планы СБиПАЗ" соответсвенно
как запустить этот же диапазон, без указания конкретного листа где лежит сама таблица

т.е. первый параметр функции принимает переменную as range, в нее надо положить СБиПАЗ[6] не указывая Sheets("Планы СБиПАЗ")

Автор - K-SerJC
Дата добавления - 14.09.2017 в 19:32
RAN Дата: Четверг, 14.09.2017, 21:29 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4533
Репутация: 920 ±
Замечаний: 0% ±

2010
Элементарно.
Переместить оттуда, где работает Me.Range, туда, где, это работать не будет, но, зато, работает Range("СБиПАЗ[6]").
И откорректировать код так, чтобы работал.
Тоько не говорите, что ответ не по существу, и вам не помогает. Каков вопрос, таков ответ.

PS
Range("СБиПАЗ[6]").ListObject
PPS
[vba]
Код
Sheets(1).Range("K4").Value = СчетВечерних(Range("СБиПАЗ[6]"), Sheets(1).Range("K1").Value, Sheets(1)."$K$4")
[/vba]
Кошек нет.... :(


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 14.09.2017, 21:58
 
Ответить
СообщениеЭлементарно.
Переместить оттуда, где работает Me.Range, туда, где, это работать не будет, но, зато, работает Range("СБиПАЗ[6]").
И откорректировать код так, чтобы работал.
Тоько не говорите, что ответ не по существу, и вам не помогает. Каков вопрос, таков ответ.

PS
Range("СБиПАЗ[6]").ListObject
PPS
[vba]
Код
Sheets(1).Range("K4").Value = СчетВечерних(Range("СБиПАЗ[6]"), Sheets(1).Range("K1").Value, Sheets(1)."$K$4")
[/vba]
Кошек нет.... :(

Автор - RAN
Дата добавления - 14.09.2017 в 21:29
K-SerJC Дата: Пятница, 15.09.2017, 07:10 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 38 ±
Замечаний: 0% ±

Excel 2013
Каков вопрос, таков ответ.

понятно что без примера, непонятно
склепаю сегодня тестовый файл из рабочего прицеплю.

код me.range лежит в теле листа, срабатывает на обновление сводной таблицы
вариант перенести в отдельный саб на лист книги? попробую...

ну вот так получилось:
[vba]
Код
Sheets("Сводный отчет").Range("J4").Value = СчетВечерних(Range("СБиПАЗ[6]"), Sheets("Сводный отчет").Range("K1").Value, "$J$4")
[/vba]
пришлось на другие параметры привязку к листу указать...
вроде разобрался...
получается имена работают или на листе книги или с привязкой на лист на котором они располагаются...
спасибо, пинок был в нужном направлении :D


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJC - Пятница, 15.09.2017, 08:29
 
Ответить
Сообщение
Каков вопрос, таков ответ.

понятно что без примера, непонятно
склепаю сегодня тестовый файл из рабочего прицеплю.

код me.range лежит в теле листа, срабатывает на обновление сводной таблицы
вариант перенести в отдельный саб на лист книги? попробую...

ну вот так получилось:
[vba]
Код
Sheets("Сводный отчет").Range("J4").Value = СчетВечерних(Range("СБиПАЗ[6]"), Sheets("Сводный отчет").Range("K1").Value, "$J$4")
[/vba]
пришлось на другие параметры привязку к листу указать...
вроде разобрался...
получается имена работают или на листе книги или с привязкой на лист на котором они располагаются...
спасибо, пинок был в нужном направлении :D

Автор - K-SerJC
Дата добавления - 15.09.2017 в 07:10
K-SerJC Дата: Пятница, 15.09.2017, 14:38 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 274
Репутация: 38 ±
Замечаний: 0% ±

Excel 2013
нет всетаки я чет недопонимай...
в модуле книги:
[vba]
Код
Set rg = Range("BaseGraph[[12 сен]:[30 ноя]]")
[/vba]
отрабатывает, а:
[vba]
Код
Set rg = Range("СБиПАЗ[4]")
[/vba]
выдает ошибку
русские буквы неудобоваримые, или я еще чтото упускаю?!
приложил пример
К сообщению приложен файл: 4423490.rar(76Kb)


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениенет всетаки я чет недопонимай...
в модуле книги:
[vba]
Код
Set rg = Range("BaseGraph[[12 сен]:[30 ноя]]")
[/vba]
отрабатывает, а:
[vba]
Код
Set rg = Range("СБиПАЗ[4]")
[/vba]
выдает ошибку
русские буквы неудобоваримые, или я еще чтото упускаю?!
приложил пример

Автор - K-SerJC
Дата добавления - 15.09.2017 в 14:38
nilem Дата: Пятница, 15.09.2017, 14:55 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1249
Репутация: 457 ±
Замечаний: 0% ±

Excel 2013
У вас там
[vba]
Код
Set rg = Range("СБиПАЗ[4]").Activate
[/vba]
без Activate работает


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеУ вас там
[vba]
Код
Set rg = Range("СБиПАЗ[4]").Activate
[/vba]
без Activate работает

Автор - nilem
Дата добавления - 15.09.2017 в 14:55
_Boroda_ Дата: Пятница, 15.09.2017, 14:56 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 11327
Репутация: 4676 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Ошибку потому дает, что Вы пишете
[vba]
Код
Set rg = Range("СБиПАЗ[4]").Activate
[/vba]
а нужно писать
[vba]
Код
Set rg = Range("СБиПАЗ[4]")
[/vba]
Так у меня работает


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеОшибку потому дает, что Вы пишете
[vba]
Код
Set rg = Range("СБиПАЗ[4]").Activate
[/vba]
а нужно писать
[vba]
Код
Set rg = Range("СБиПАЗ[4]")
[/vba]
Так у меня работает

Автор - _Boroda_
Дата добавления - 15.09.2017 в 14:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » как передать диапазон умной таблицы в функцию VBA? (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!