![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
![]()
У меня есть 4 OptionButton(a), которые привязаны к ячейкам А1, B1, C1, D1. И если 1-й optionbotton из 4-х имеет значение TRUE, то значения в ячейку тянутся из одного листа, если 2-й равен TRUE - то с значения тянутся с другого листа и т.д.
Формула в ячейке выглядит примерно так: =IF($A$1=TRUE;VLOOKUP(F2;'Sheet1'!$ A$3:$D$300;2;FALSE);IF($B$1=TRUE;VL OOKUP(F2;'Sheet2'!$A$3:$D$300;2;FAL SE);IF($C$1=TRUE;VLOOKUP(F2;'Sheet3 '!$A$3:$D$300;2;FALSE);IF($D$1=TRUE ;VLOOKUP(F2;'Sheet4'!$A$3:$D$300;2; FALSE))))) *Vlookup может искать значения не только с листов активной книги.xls, а также с других книг. **Плюс у меня формулы на случай ошибки прописаны через If(iserror(...);"";(...)) это вдвое увеличивает ее написание. Пример во вложении. Как можно сократить формулу? Или искать иначе? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
А обязательно прописывать формулы? Примените макрос, который будет запускаться по изменению значений OptionButton-ов, искать и расчитывать все, что Вам нужно и вставлять в нужную ячейку (ячейки). Тогда и привязка значений OptionButton-ов к конкретным ячейкам будет не нужна.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
![]()
Как запустить макрос для optionbutton без вспомогательной кнопки?
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Если у Вас OptionButton-ы на листе созданы как "Элементы управления" (как в примере), то включите "Режим конструктора", зайдите в "Исходный текст" и там пропишите запуск макроса. Например
Код:
Если же OptionButton-ы создать как формы, то просто - назначить макрос.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
а вы поверите, если я скажу, что написал формулу длиной 18 символом? которая возвращает значение с нужного листа или пустую строку, когда значение не найдено, т.е. аналог вашей формулы с проверкой.
мало того, эта формула (при небольшой настройке, которая не повлияет на ее длину) может производить поиск на 10, 100, 1000 и т.д. листах. понятно, все без макросов
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
![]()
эммм...можно посмотреть, а?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
![]()
SAS888, выручите с макросом?
Sub Macro1() 'заполняет выделенный диапазон по соответствующим датам столбца B из листа Sheet1, если значение Optionbotton1 = TRUE End Sub *Наверняка есть какой-то умный цикл с UBound) Последний раз редактировалось ruavia3; 22.04.2009 в 11:39. |
![]() |
![]() |
![]() |
#8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
в строке 13 "честная формула", с проверкой, она все равно на 10 символов короче вашей без проверки
в строке 14 короткая формула. вместо ВПР... подставлено имя. в Ф2 пишем дату, выбираем лист, формула возвращает значение из второй колонки листа напротив указанной даты, если она нашлась на листе.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Вопрос с макросом актуален? Или Вас устроит вариант, предложенный IgorGO?
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 13.03.2009
Сообщений: 253
|
![]()
SAS888, если есть возможность, то я бы хотел макросом.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как можно сократить код | jocry | Общие вопросы Delphi | 2 | 20.01.2009 08:35 |
Как сократить время? МАКРОС! | jungo | Microsoft Office Excel | 17 | 01.05.2008 12:13 |
как вычислить формулу? | Sergeus | Microsoft Office Excel | 2 | 26.02.2008 23:56 |
Как переделать формулу | mik | Microsoft Office Excel | 1 | 27.10.2007 19:07 |