Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 123
1

Окрашивание текста в ячейке в зависимости от самого первого символа в этой строке

20.09.2017, 08:27. Показов 817. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, господа программисты.
Помогите решить проблему.

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

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

(То есть - если ячейка в диапазоне C15:K38 - начинается с символа " - то весь текст этой ячейки окрашивается в тот цвет, который имеет шрифт в ячейке J6 (в данном случае - Красный))
Вложения
Тип файла: xls 457998.xls (31.5 Кб, 12 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2017, 08:27
Ответы с готовыми решениями:

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

Выполнить замену первого символа на второй символ во всей строке текста
1. Ввести множество, запись или строку с помощью клавиатуры. 2. Вывести на экран монитора исходную...

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа...

Определение самого короткого и самого длинного слова во введенной строке текста
прошу помогите написать блок схему к задаче. Создать в системе программирования Visual Studio 200*...

7
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
20.09.2017, 11:07 2
lixar21,
Тут можно и без макросов .
Попробуйте "Условное форматирование"( "Conditional formatting")
0
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 123
20.09.2017, 11:25  [ТС] 3
Narimanych , вы не поняли.
Макрос должен сперва присвоить символу цвет шрифта - из ячейки напротив ключевого символа.
0
3897 / 2302 / 776
Регистрация: 02.11.2012
Сообщений: 6,119
20.09.2017, 11:35 4
Цитата Сообщение от lixar21 Посмотреть сообщение
должен сперва присвоить символу цвет шрифта - из ячейки напротив
обязательно?
вариант без присвоения, с пропиской в коде.
Visual Basic
1
2
3
4
For Each r In Range("C15:K38").SpecialCells(xlCellTypeConstants, 23)
      n = InStr(1, ";""$#^", Left(r, 1))
      r.Font.Color = Choose(n, -11489280, vbRed, -6279056, vbBlue, -16727809)
Next
0
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 123
20.09.2017, 11:46  [ТС] 5
Vlad999 , понимаете в чем дело.
Вот вы написали Font.Color = Choose(n, -11489280, vbRed, -6279056, vbBlue, -16727809)
Я узнал, что это - зеленый цвет, только введя этот код.

Но я ведь не знаю эти численные комбинации цветов в стиле RGB.
А там есть - оранжевый, фиолетовый.
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
20.09.2017, 12:11 6
Как вариант:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Sub pr()
    Dim r As Range, s$
    With CreateObject("scripting.dictionary")
        For Each r In Range("i5:i9")
            .Item(r.Value) = r.Offset(, 1).Font.Color
        Next
        For Each r In Range("C15:K38").SpecialCells(xlCellTypeConstants, 23)
              s = Left(r, 1)
              If .exists(s) Then r.Font.Color = .Item(s)
        Next
    End With
End Sub
0
0 / 0 / 0
Регистрация: 02.01.2017
Сообщений: 123
20.09.2017, 12:21  [ТС] 7
toiai , вот это - самое подходящее решение.
Большое спасибо за помощь.
0
4134 / 2238 / 940
Регистрация: 01.12.2010
Сообщений: 4,624
20.09.2017, 14:53 8
Ещё один вариант правда по сути, просто скрещивание двух предыдущих, но без словаря

Visual Basic
1
2
3
4
5
6
7
8
9
10
Private Sub Test()
    Dim c As New Collection, r As Range, n&, t$
    For Each r In [J5:J9]
        c.Add r.Font.Color: t = t & r(1, 0)
    Next
    For Each r In [C15:K38].SpecialCells(xlConstants, xlTextValues)
        n = InStr(t, Left(r, 1))
        If n > 0 Then r.Font.Color = c(n)
    Next
End Sub
0
20.09.2017, 14:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2017, 14:53
Помогаю со студенческими работами здесь

Проверка первого символа в ячейке
Без макросов встроенными функциями excel можно ли обойтись точно не знаю, ну у меня не получился....

Выравнивание текста в ячейке по вертикали в зависимости от высоты текста
Подскажите, есть ли возможность прорисовывать текст в ячейке грида, в зависимости от её высоты....

На основании текста сформировать матрицу, в которой в каждой ячейке будет по 2 символа из приведенного в файле текста
Доброго времени суток! Помогите пожалуйста решить задачу Дан текстовый файл в котором N строк...

Как определить значение первого символа в ячейке?
Подскажите, пожалуйста, как определить значение первого символа в ячейке. Заранее спасибо.

Индекс первого символа первого вхождения аргумента в строке
В книге указано: метод получает строку-аргумент и возвращает индекс первого символа первого...

Нахождение самого частого символа в строке
Доброго времени суток. Ищу доброго человека для помощи. Необходимо написать программу на С. Или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru