Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Пользовательская функция Добавлено: 12.07.06 19:59  

Автор вопроса:  x_arrange
Люди, кто знает как сделать п. ф. которая в качестве параметра принимает обычную ссылку на ячейку и меняет ее цвет.

что-то типа

Public Function ChangeColor(...)
    ...
End Function

В ячейке А1 пишем
=ChangeColor(C3)

и ячейка С3 становится, например красной.


Такое вообще возможно?

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 12.07.06 23:23
Функциям листа запрещено менять лист.

Ответить

Номер ответа: 2
Автор ответа:
 x_arrange



Вопросов: 1
Ответов: 5
 Профиль | | #2 Добавлено: 12.07.06 23:28
Но содержимое ячейки я могу изменить. Это тоже изменение листа. Кроме того по собвтию кнопки я могу на этом же листе изменить цвет.

Не работает только вызов функции из формулы

Ответить

Номер ответа: 3
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #3 Добавлено: 13.07.06 00:29
Функциям листа запрещено менять лист.
Функциям, вызываемым с листа.
Ы?

Ответить

Номер ответа: 4
Автор ответа:
 ADSemenov.ru



Вопросов: 5
Ответов: 276
 Web-сайт: www.adsemenov.ru
 Профиль | | #4
Добавлено: 13.07.06 09:19
____ А существует ли в VBA возможность "назначить" выполнение процедуры через некоторое время (аналогично созданию таймера в javascript)?

Ответить

Номер ответа: 5
Автор ответа:
 Незнайка



Вопросов: 7
Ответов: 188
 Профиль | | #5 Добавлено: 13.07.06 10:36
См. в Help VBA: OnTime

Ответить

Номер ответа: 6
Автор ответа:
 x_arrange



Вопросов: 1
Ответов: 5
 Профиль | | #6 Добавлено: 13.07.06 12:16
Что все-таки значит
Функция листа
? Пользовательская функция располагается в отдельном модуле и не принадлежит ниодному листу, а может быть вызвана с любого. При вызове такой функции с одного листа она не меняет цвет ячейки ни на своем, ни на другом листе.

Что-то здесь не так.

Ответить

Номер ответа: 7
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #7
Добавлено: 13.07.06 18:19
Функция вызванная с листа может только возвратить значение в ячейку (в которой она находится). Лутше употреблять термин "формула", так понятней.
В Вашем случае - попробуйте условное форматирование.

Ответить

Номер ответа: 8
Автор ответа:
 x_arrange



Вопросов: 1
Ответов: 5
 Профиль | | #8 Добавлено: 13.07.06 21:27
Большое спасибо, конечно, но что такое "условное форматирование". Как это на VBA выглядит?

Ответить

Номер ответа: 9
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #9
Добавлено: 14.07.06 22:18
Меню-Формат-Условное форматирование
Если на VBA, включи макрорекордер и посмотри код.

Ответить

Номер ответа: 10
Автор ответа:
 x_arrange



Вопросов: 1
Ответов: 5
 Профиль | | #10 Добавлено: 14.07.06 23:39
Спасибо, но это немного не то. Тем более условия для ячейки храняться черт знает где и при копировании не меняются. Т. е. нельзя указать дя одной и потом растащить, как формулу.

Ответить

Номер ответа: 11
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #11 Добавлено: 15.07.06 00:11
Можно всё растащить.

Ответить

Номер ответа: 12
Автор ответа:
 Дмит



Вопросов: 11
Ответов: 160
 Web-сайт: dimit.pochta.ru
 Профиль | | #12
Добавлено: 15.07.06 20:46
В ячейку А1 вводим -5
В ячейку B1 Меню-Формат-Условное форматирование
   в первом комбо выбираем формула, вписываем например =A1>0, выбираем цвет фона или ещё чего-нибудь
   нажимаем кнопку А также>> делаем второе условвие =A1=0 ......=A1<0 ......
К сожалению условий только три.
Выделяем ячейки A1:B1 и растягиваем.

Напишите что Вы хотите получить в результате, может быть кто-либо подскажет оптимальный вариант решения.

Ответить

Номер ответа: 13
Автор ответа:
 x_arrange



Вопросов: 1
Ответов: 5
 Профиль | | #13 Добавлено: 15.07.06 20:50
Спасибо все уже получилось, правда с использованием условного форматирования.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам