Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пользовательские функции в Excel 
:(
    Опции темы
Ars
Дата 28.8.2003, 15:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Надо написать функцию, которая не только вычисляет значение ячейки, но и изменяет цвет текста
Код

Public Function Mark_Date(aBeginDate, aMonths)
   If aBeginDate <> "" Then
       Mark_Date = DateAdd("m", aMonths, aBeginDate)
       If Date > Mark_Date Then
           Cells(6, 1).Font.Color = RGB(255, 0, 0)
       Else: Cells(6, 1).Font.Color = 0
       End If
   Else: Mark_Date = ""
   End If
End Function

Значение меняется, а цвет - хрен
Подскажите, плз, в чем дело. Заранее спасибо
  Вверх
Mephisto
Дата 28.8.2003, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Волкъ
***


Профиль
Группа: Завсегдатай
Сообщений: 1818
Регистрация: 27.8.2003
Где: Питер

Репутация: 2
Всего: 34



Должно изменится. Проверь, Cells(6, 1) это Cell("A6").
PM   Вверх
Ars
Дата 28.8.2003, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

Репутация: нет
Всего: 2



Цитата
Должно изменится. Проверь, Cells(6, 1) это Cell("A6").

Я понимаю... А6 - это так, для отладки. Просто я еще не знаю, как поиметь доступ к ячейке, в которой вызывается функция, поэтому вбил жестко ячейку, где есть текст... Все равно не работает. А если пытаться изменить содержимое какой-нибудь ячейки, вообще вылетает из функции.


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
Ars
Дата 4.9.2003, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 28.8.2003
Где: Московская обл.

Репутация: нет
Всего: 2



Есть, кто волочет в VB для Excel? Подскажите, плз, что за $%*

В ячейке B1 (Cells(1,2)) пишу =Mark_Date_Func()
Код

Public Function Mark_Date_Func()
   If Cells(1, 1).Value <> "" Then
       Mark_Date_Func = DateAdd("m", 12, Cells(1, 1).Value)
       If Date > Mark_Date_Func Then
           Cells(1, 2).Font.Color = RGB(255, 0, 0)
       Else: Cells(1, 2).Font.Color = 0
       End If
   Else: Mark_Date_Func = ""
   End If
End Function

При выполнении цвет не меняется mad.gif
Вызываю ее же из макроса - все нормально!
Код

Public Sub Mark_Date_Sub()
   Cells(1, 2).Value = Mark_Date_Func()
End Sub


Почему функция выполняется по-разному? wow.gif


--------------------
Есть многое на свете, друг Горацио,
С чем очень долго можно прое..!
PM MAIL   Вверх
Гость_qwe
Дата 6.6.2005, 04:21 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как написать в экселе функцию, чтоб она работала как стандартная (т.е. возвращала значение в ячейку, в которую скопирована), или посмотреть как выглядит код одной из стандартных функций?
  Вверх
Staruha
Дата 6.6.2005, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1292
Регистрация: 1.2.2004
Где: Казань

Репутация: 2
Всего: 27



Функция прописывается автоматически.Надо вставить ее в модуль.А потом выбрать Определенные пользователем.Там появится твоя ф-я.Знак $ означает ,что при копировании адрес не изменится А2 меняется на А3,А4 ,$A$2 - формула при копировании не меняется

Это сообщение отредактировал(а) Staruha - 6.6.2005, 20:00


--------------------
Возмездие настигнет
PM MAIL   Вверх
Akina
Дата 7.6.2005, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



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

Код

Application.Volatile


smile


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.