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

Вход

Регистрация

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

 

= Мир MS Excel/Функция выделения цветом - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Функция выделения цветом (Иное/Other)
Функция выделения цветом
A_3485 Дата: Суббота, 09.11.2019, 19:34 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 0 ±
Замечаний: 40% ±

2007
Уважаемые форумчане, доброго времени суток.
Пробую написать функцию, которая выделяет ячейку определенным цветом, в зависимости от текста. Например если текст "КР", значит красный цвет. Когда запускаю функцию на определенном листе, то ошибка "#ЗНАЧ!".
[vba]
Код

Function ЦВЕТ (b As String)    
    Имя_листа = ActiveSheet.Name
    Имя_ячейки = ActiveCell.row
     If b = "КР" Then  Sheets(Имя_листа ).Cells(Имя_ячейки , 1).Interior.ColorIndex = 3
end function
[/vba]
Что придумать пока не знаю. Как реализовать через условное форматирование, тоже не знаю
 
Ответить
СообщениеУважаемые форумчане, доброго времени суток.
Пробую написать функцию, которая выделяет ячейку определенным цветом, в зависимости от текста. Например если текст "КР", значит красный цвет. Когда запускаю функцию на определенном листе, то ошибка "#ЗНАЧ!".
[vba]
Код

Function ЦВЕТ (b As String)    
    Имя_листа = ActiveSheet.Name
    Имя_ячейки = ActiveCell.row
     If b = "КР" Then  Sheets(Имя_листа ).Cells(Имя_ячейки , 1).Interior.ColorIndex = 3
end function
[/vba]
Что придумать пока не знаю. Как реализовать через условное форматирование, тоже не знаю

Автор - A_3485
Дата добавления - 09.11.2019 в 19:34
Gustav Дата: Суббота, 09.11.2019, 21:58 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1701
Репутация: 687 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Как реализовать через условное форматирование, тоже не знаю



А что касается пользовательских функций, используемых на рабочем листе, то они должны возвращать значения, которое отобразится в ячейке ввода. Все операторы действия (заливка, закраска, вставка встрок, удаление ячеек и т.п.) в функции рабочего листа ИГНОРИРУЮТСЯ и приводят к ошибке #ЗНАЧ! Поэтому с помощью функций на листе Вы свою задачу не решите.
К сообщению приложен файл: 6917622.png(115.0 Kb)


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
Как реализовать через условное форматирование, тоже не знаю



А что касается пользовательских функций, используемых на рабочем листе, то они должны возвращать значения, которое отобразится в ячейке ввода. Все операторы действия (заливка, закраска, вставка встрок, удаление ячеек и т.п.) в функции рабочего листа ИГНОРИРУЮТСЯ и приводят к ошибке #ЗНАЧ! Поэтому с помощью функций на листе Вы свою задачу не решите.

Автор - Gustav
Дата добавления - 09.11.2019 в 21:58
RIMINI Дата: Суббота, 09.11.2019, 22:08 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Gustav, а как сделать то же самое, только на JavaScript, не знаете?
 
Ответить
СообщениеGustav, а как сделать то же самое, только на JavaScript, не знаете?

Автор - RIMINI
Дата добавления - 09.11.2019 в 22:08
Gustav Дата: Суббота, 09.11.2019, 22:30 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1701
Репутация: 687 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
как сделать то же самое, только на JavaScript

Сделать то же самое - ЧТО? УФ или неработающую пользовательскую функцию? И - ГДЕ, в каком контексте? В Excel или в таблицах Google? Какую задачку решаете?


Мой tip box - яд 41001663842605
 
Ответить
Сообщение
как сделать то же самое, только на JavaScript

Сделать то же самое - ЧТО? УФ или неработающую пользовательскую функцию? И - ГДЕ, в каком контексте? В Excel или в таблицах Google? Какую задачку решаете?

Автор - Gustav
Дата добавления - 09.11.2019 в 22:30
Pelena Дата: Суббота, 09.11.2019, 22:31 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 14715
Репутация: 3218 ±
Замечаний: ±

Excel 2010, 2016 & Mac Excel
RIMINI, прочитайте Правила форума, создайте свою тему и сформулируйте вопрос более конкретно


"Черт возьми, Холмс! Но как??!!"
ЯД 41001765434816
 
Ответить
СообщениеRIMINI, прочитайте Правила форума, создайте свою тему и сформулируйте вопрос более конкретно

Автор - Pelena
Дата добавления - 09.11.2019 в 22:31
krosav4ig Дата: Воскресенье, 10.11.2019, 07:04 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 2188
Репутация: 915 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Все операторы действия (заливка, закраска, вставка встрок, удаление ячеек и т.п.) в функции рабочего листа ИГНОРИРУЮТСЯ
Ну зачем же так категорично? У нас есть же Evaluate
[vba]
Код
Function ЦВЕТ$(ByRef r As Range, b$, iColor%)
    Dim s$, s1$
    On Error Resume Next
    If b = "КР" Then iColor = 3 Else iColor = xlNone
    s = r.Address(, , Application.ReferenceStyle, 1)
    s1 = Application.Caller.Address(, , Application.ReferenceStyle, 1)
    Evaluate "Module1.Colorize(" & s & "," & s1 & "," & iColor & ")"
    DoEvents
    ЦВЕТ = IIf(r.Interior.ColorIndex = iColor, "ГОТОВО!", "ОШИБКА!")
End Function
Function Colorize(ByRef r As Range, ByRef r1 As Range, iColor%)
    On Error Resume Next
    If Application.Caller.Address <> r1.Address Then
        r.Interior.ColorIndex = iColor
    End If
End Function
[/vba]
К сообщению приложен файл: 3680272.xlsm(15.6 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Воскресенье, 10.11.2019, 07:06
 
Ответить
Сообщение
Все операторы действия (заливка, закраска, вставка встрок, удаление ячеек и т.п.) в функции рабочего листа ИГНОРИРУЮТСЯ
Ну зачем же так категорично? У нас есть же Evaluate
[vba]
Код
Function ЦВЕТ$(ByRef r As Range, b$, iColor%)
    Dim s$, s1$
    On Error Resume Next
    If b = "КР" Then iColor = 3 Else iColor = xlNone
    s = r.Address(, , Application.ReferenceStyle, 1)
    s1 = Application.Caller.Address(, , Application.ReferenceStyle, 1)
    Evaluate "Module1.Colorize(" & s & "," & s1 & "," & iColor & ")"
    DoEvents
    ЦВЕТ = IIf(r.Interior.ColorIndex = iColor, "ГОТОВО!", "ОШИБКА!")
End Function
Function Colorize(ByRef r As Range, ByRef r1 As Range, iColor%)
    On Error Resume Next
    If Application.Caller.Address <> r1.Address Then
        r.Interior.ColorIndex = iColor
    End If
End Function
[/vba]

Автор - krosav4ig
Дата добавления - 10.11.2019 в 07:04
A_3485 Дата: Воскресенье, 10.11.2019, 14:09 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 146
Репутация: 0 ±
Замечаний: 40% ±

2007
Ну зачем же так категорично? У нас есть же Evaluate

У меня почему то после срабатывания функции, когда я например удалил КР и заново в ячейку ввел значение КР, EXCEL выдает ошибку: Искать в интернете, перезапустить, отладить.


Сообщение отредактировал A_3485 - Воскресенье, 10.11.2019, 15:40
 
Ответить
Сообщение
Ну зачем же так категорично? У нас есть же Evaluate

У меня почему то после срабатывания функции, когда я например удалил КР и заново в ячейку ввел значение КР, EXCEL выдает ошибку: Искать в интернете, перезапустить, отладить.

Автор - A_3485
Дата добавления - 10.11.2019 в 14:09
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Функция выделения цветом (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

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