powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как програмно поменять цвет текта
5 сообщений из 5, страница 1 из 1
Как програмно поменять цвет текта
    #33799508
smm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте уважаемые!

Помогите решить следующую проблему:
Есть таблица. В ней 2 колонки.
В первой колонке находятся заранее определенные (10 вариантов) текстовые значения, а во второй какие-то другие произвольные значения (текст, числа).
НУЖНА формула, чтобы в зависимости от значения в 1 колонке менялся цвет текста во второй колонке.

ЗЫ:
Наверное нужно писать пользовательскую функцию, которая меняет цвет текста и вставить ее в формулу с условиями по типу вложенных ЕСЛИ()

Я попробовал и вбил в модуль книги следующую функцию изменения цвета текста:

Public Function SetColorCell(iRange As Range, iColor As Integer) iRange.Font.ColorIndex = iColor
End Function

а это я вбиваю в ячейку Excel
=SetColorCell(RC[-2];3)

Но цвет текста не меняется, почему?
...
Рейтинг: 0 / 0
Как програмно поменять цвет текта
    #33799553
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условное форматирование
...
Рейтинг: 0 / 0
Как програмно поменять цвет текта
    #33799618
smm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условное форматирование мне не подходит, поскольку там можно задать 3 условия, а у меня их 10 и во вторых мне нужно, чтобы форматирование происходилопо формуле, чтобы настроить эту формулу на первой строчке и скопировать ее вниз, для рассветки остальных строчек.
...
Рейтинг: 0 / 0
Как програмно поменять цвет текта
    #33799783
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тебе обязательно формулой нужно или можно обойтись чистым VBA?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    
    Set rng = Range("A1:A10")
    
    If Not (Application.Intersect(Target, rng) Is Nothing) Then
        If Target.Value = "a" Then
            Target.Offset( 0 ,  1 ).Font.Color = RGB( 255 ,  0 ,  0 )
        ElseIf Target.Value = "b" Then
            Target.Offset( 0 ,  1 ).Font.Color = RGB( 0 ,  255 ,  0 )
        ElseIf Target.Value = "c" Then
            Target.Offset( 0 ,  1 ).Font.Color = RGB( 0 ,  0 ,  255 )
        Else
            Target.Offset( 0 ,  1 ).Font.Color = RGB( 0 ,  0 ,  0 )
        End If
    End If
End Sub
...
Рейтинг: 0 / 0
Как програмно поменять цвет текта
    #33799918
smm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно формулой.

ЗЫ:
Вбил в модуль указанный ниже код с обработкой события -неотрабатывает. Поставил БреакПоит -недоходит.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как програмно поменять цвет текта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]