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

Вход

Регистрация

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

 

= Мир MS Excel/Достать свойства СкроллБара - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Достать свойства СкроллБара (Макросы/Sub)
Достать свойства СкроллБара
Vostok Дата: Среда, 13.05.2015, 08:07 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Имею проблему в работе с OLEObjects. Создал СкроллБар на листе, определил его основные свойства, дал имя связанной ячейке:

А как теперь добраться до его свойств? К примеру, требуется, получить имя связанной ячейки и занести его в переменную.
К сообщению приложен файл: ScBarProperty.xlsm (16.1 Kb)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
СообщениеИмею проблему в работе с OLEObjects. Создал СкроллБар на листе, определил его основные свойства, дал имя связанной ячейке:

А как теперь добраться до его свойств? К примеру, требуется, получить имя связанной ячейки и занести его в переменную.

Автор - Vostok
Дата добавления - 13.05.2015 в 08:07
nilem Дата: Среда, 13.05.2015, 08:11 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
[vba]
Код
Sub ttt()
MsgBox ActiveSheet.ScrollBars(1).LinkedCell
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщение[vba]
Код
Sub ttt()
MsgBox ActiveSheet.ScrollBars(1).LinkedCell
End Sub
[/vba]

Автор - nilem
Дата добавления - 13.05.2015 в 08:11
Vostok Дата: Среда, 13.05.2015, 08:36 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
А я брал Сортир подкопом :) , и как только не пробовал
[vba]
Код
ActiveSheet.Shapes("Scroll Bar 1").LinkedCell
ActiveSheet.OLEObjects("Scroll Bar 1").Object.LinkedCell
[/vba] а оно вон, как всё гениальное - просто. Однако имени то я не достаю. Я достаю только адрес ячейки.
[vba]
Код
Debug.Print Range(ActiveSheet.ScrollBars(1).LinkedCell).Name
[/vba] И так не выходит, только это и получаю =Лист1!$G$2


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
СообщениеА я брал Сортир подкопом :) , и как только не пробовал
[vba]
Код
ActiveSheet.Shapes("Scroll Bar 1").LinkedCell
ActiveSheet.OLEObjects("Scroll Bar 1").Object.LinkedCell
[/vba] а оно вон, как всё гениальное - просто. Однако имени то я не достаю. Я достаю только адрес ячейки.
[vba]
Код
Debug.Print Range(ActiveSheet.ScrollBars(1).LinkedCell).Name
[/vba] И так не выходит, только это и получаю =Лист1!$G$2

Автор - Vostok
Дата добавления - 13.05.2015 в 08:36
Hugo Дата: Среда, 13.05.2015, 08:44 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Как-то смысл ускользает - если сами кодом задаёте ячейку, то зачем кодом искать её имя, он ведь известно?
Но как вариант - перебором:
[vba]
Код
Sub tt()
     Dim x As Object
     For Each x In Application.Names
         If x.RefersTo = Range(ActiveSheet.ScrollBars(1).LinkedCell).Name Then Debug.Print x.Name: Exit For
     Next
End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Среда, 13.05.2015, 08:53
 
Ответить
СообщениеКак-то смысл ускользает - если сами кодом задаёте ячейку, то зачем кодом искать её имя, он ведь известно?
Но как вариант - перебором:
[vba]
Код
Sub tt()
     Dim x As Object
     For Each x In Application.Names
         If x.RefersTo = Range(ActiveSheet.ScrollBars(1).LinkedCell).Name Then Debug.Print x.Name: Exit For
     Next
End Sub
[/vba]

Автор - Hugo
Дата добавления - 13.05.2015 в 08:44
Vostok Дата: Среда, 13.05.2015, 08:59 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Как-то смысл ускользает - если сами кодом задаёте ячейку, то зачем кодом искать её имя, он ведь известно?
Не известно. У меня Лист, а на нём 13 диаграмм. Под каждой свой скроллбар и связанная с ним ячейка с именем. Пользователь вызывает Форму и делает выбор трёх диаграмм (из этих 13-ти) для копирования на новый лист. Какие это будут диаграммы - не известно. Но к каждой копируемой диаграмме нужно отложить в сторонку имя связанной ячейки её скроллбара для дальнейшего кода. Но всё равно, СПАСИБО за рабочий вариант.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 13.05.2015, 09:08
 
Ответить
Сообщение
Как-то смысл ускользает - если сами кодом задаёте ячейку, то зачем кодом искать её имя, он ведь известно?
Не известно. У меня Лист, а на нём 13 диаграмм. Под каждой свой скроллбар и связанная с ним ячейка с именем. Пользователь вызывает Форму и делает выбор трёх диаграмм (из этих 13-ти) для копирования на новый лист. Какие это будут диаграммы - не известно. Но к каждой копируемой диаграмме нужно отложить в сторонку имя связанной ячейки её скроллбара для дальнейшего кода. Но всё равно, СПАСИБО за рабочий вариант.

Автор - Vostok
Дата добавления - 13.05.2015 в 08:59
nilem Дата: Среда, 13.05.2015, 09:00 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
а так:
[vba]
Код
Sub ttt()
MsgBox Range(ActiveSheet.ScrollBars(1).LinkedCell).Name.Name
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеа так:
[vba]
Код
Sub ttt()
MsgBox Range(ActiveSheet.ScrollBars(1).LinkedCell).Name.Name
End Sub
[/vba]

Автор - nilem
Дата добавления - 13.05.2015 в 09:00
Vostok Дата: Среда, 13.05.2015, 09:06 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
А так - так Это просто Исчерпывающее решение !!!


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Serge_007 - Среда, 13.05.2015, 17:58
 
Ответить
СообщениеА так - так Это просто Исчерпывающее решение !!!

Автор - Vostok
Дата добавления - 13.05.2015 в 09:06
Hugo Дата: Среда, 13.05.2015, 09:09 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Name.Name это круто! :)
По "Не известно" - так ведь когда пишите код и привязываете скролбары - имена ячеек известны, можно их сразу и отложить в сторонку. Или пользователи имеют привычку их переименовывать?


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеName.Name это круто! :)
По "Не известно" - так ведь когда пишите код и привязываете скролбары - имена ячеек известны, можно их сразу и отложить в сторонку. Или пользователи имеют привычку их переименовывать?

Автор - Hugo
Дата добавления - 13.05.2015 в 09:09
Vostok Дата: Среда, 13.05.2015, 09:15 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
так ведь когда пишите код и привязываете скролбары - имена ячеек известны, можно их сразу и отложить в сторонку.
Ок. Отложил. А дальше? Во-первых - нужно где-то на лист записывать эти имена. А потом, всё равно нужно знать какое именно имя из 13-ти отложенных нужно достать в нужное время. Другое дело при выборе диаграммы для .Copy откладывать только те имена, которые связаны с выбранной Диаграммой и вносить его в массив. Менее трудоёмкое занятие и более оперативное.
Вы просто не видите Задачи в Полном Объёме, иначе Вы бы со мной согласились. А привести здесь задачу в полном файле не могу из-за его огромнейшего объёма.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 13.05.2015, 09:19
 
Ответить
Сообщение
так ведь когда пишите код и привязываете скролбары - имена ячеек известны, можно их сразу и отложить в сторонку.
Ок. Отложил. А дальше? Во-первых - нужно где-то на лист записывать эти имена. А потом, всё равно нужно знать какое именно имя из 13-ти отложенных нужно достать в нужное время. Другое дело при выборе диаграммы для .Copy откладывать только те имена, которые связаны с выбранной Диаграммой и вносить его в массив. Менее трудоёмкое занятие и более оперативное.
Вы просто не видите Задачи в Полном Объёме, иначе Вы бы со мной согласились. А привести здесь задачу в полном файле не могу из-за его огромнейшего объёма.

Автор - Vostok
Дата добавления - 13.05.2015 в 09:15
Hugo Дата: Среда, 13.05.2015, 09:27 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Отложили в массив в самом коде. Выбрал юзер ActiveSheet.ScrollBars(3) - берём третий элемент массива.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеОтложили в массив в самом коде. Выбрал юзер ActiveSheet.ScrollBars(3) - берём третий элемент массива.

Автор - Hugo
Дата добавления - 13.05.2015 в 09:27
Vostok Дата: Среда, 13.05.2015, 09:38 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Отложили в массив в самом коде.
Лист с диаграммами уже давно построен. Нет там больше никакого массива. (И таких листов у меня 10 штук. На каждом по 13-26 диаграмм.) И когда юзер выбирает нужные диаграммы с разных листов, строится Новый лист, на который ложатся эти диаграммы, но в нужной последовательности и порядке следования, согласно стратегии Анализа. Поэтому ActiveSheet тут вообще ни каким боком. Говорю же не подходит этот номер :)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 13.05.2015, 09:39
 
Ответить
Сообщение
Отложили в массив в самом коде.
Лист с диаграммами уже давно построен. Нет там больше никакого массива. (И таких листов у меня 10 штук. На каждом по 13-26 диаграмм.) И когда юзер выбирает нужные диаграммы с разных листов, строится Новый лист, на который ложатся эти диаграммы, но в нужной последовательности и порядке следования, согласно стратегии Анализа. Поэтому ActiveSheet тут вообще ни каким боком. Говорю же не подходит этот номер :)

Автор - Vostok
Дата добавления - 13.05.2015 в 09:38
Hugo Дата: Среда, 13.05.2015, 09:56 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Не понимаю...
Если на каждый скроллбар свой код - то имя можно сразу жёстко указать.
Если в коде выявляется номер скроллбара - то по номеру можно взять имя из массива.
Но в общем т.к. есть Name.Name - то это оптимально, не нужно ведь лазить за этим свойством 100000 раз в цикле.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНе понимаю...
Если на каждый скроллбар свой код - то имя можно сразу жёстко указать.
Если в коде выявляется номер скроллбара - то по номеру можно взять имя из массива.
Но в общем т.к. есть Name.Name - то это оптимально, не нужно ведь лазить за этим свойством 100000 раз в цикле.

Автор - Hugo
Дата добавления - 13.05.2015 в 09:56
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Достать свойства СкроллБара (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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