powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Раскрасить часть текста в ячейке
6 сообщений из 6, страница 1 из 1
Раскрасить часть текста в ячейке
    #39594406
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Собственно, надо раскрасить часть текста по условиям. Условия есть, но не знаю как описать вторую ветку. Когда не совпало в условие.
Вот код
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub cehout()
    Application.ScreenUpdating = False
    massceh = Sheets("коды").UsedRange.Value
    arrlist = ActiveSheet.UsedRange.Value
    Ncolumn1 = Columns(1)
    Ncolumn2 = Columns(2)
    For i = 2 To UBound(arrlist)
        For j = LBound(massceh) To UBound(massceh)
            If InStr(1, Cells(i, Ncolumn2), massceh(j, 1)) > 0 Then
                If InStr(Cells(i, Ncolumn1), massceh(j, 2)) > 0 Then
                    intFoundPosition = InStr(1, Cells(i, Ncolumn1), massceh(j, 2))
                    Do While intFoundPosition > 0
                        Cells(i, Ncolumn1).Characters(intFoundPosition, Len(massceh(j, 2))).Font.color = -11489280 'зелёный
                        intFoundPosition = InStr(intFoundPosition + 1, Cells(i, Ncolumn1), massceh(j, 2), vbTextCompare)
                    Loop
                End If
            End If
        Next j
    Next i
    Application.ScreenUpdating = True
End Sub


Он закрашивает только если есть совпадение. Если нет совпадения, но есть совпадение, то надо чтоб добавлял текст в ячейку и красил её в красный.
Вот пример прилагаю.
...
Рейтинг: 0 / 0
Раскрасить часть текста в ячейке
    #39594477
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelесли есть совпадение. Если нет совпадения, но есть совпадениеШТА?
...
Рейтинг: 0 / 0
Раскрасить часть текста в ячейке
    #39594575
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Понимаю, что написаное вызывает удивление, но оно так и есть. Если нашлось совпадение в 2 столбце, но не нашлось совпадения в 1 столбце, надо дописать в первый столбец значение из массива находящееся во второй размерности и закрасить его красным цветом. Как закрасить в зелёный по условию, если нашлось во втором столбце и в первом, то красим. По итоговому листу видно, что хотелось бы получить.
...
Рейтинг: 0 / 0
Раскрасить часть текста в ячейке
    #39594685
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитай про логические выражения в VB и описание оператора If

Код: vbnet
1.
2.
            If InStr(1, Cells(i, Ncolumn2), massceh(j, 1)) > 0 Then
                If InStr(Cells(i, Ncolumn1), massceh(j, 2)) > 0 Then



Переписываешь как
Код: vbnet
1.
If InStr(1, Cells(i, Ncolumn2), massceh(j, 1)) > 0 And InStr(Cells(i, Ncolumn1), massceh(j, 2)) > 0 Then

и становится гораздо понятнее. Дальше пишешь ElseIf и задаешь альтернативные условия и действия
...
Рейтинг: 0 / 0
Раскрасить часть текста в ячейке
    #39594759
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
Это мне понятно, мне не понятно как написать ветку Else. Туплю.
...
Рейтинг: 0 / 0
Раскрасить часть текста в ячейке
    #39594812
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelЕсли нашлось совпадение в 2 столбце, но не нашлось совпадения в 1 столбцеменяешь "НО" (нет такого логического оператора), на "И" (такой есть)BlackeAngelЕсли нашлось совпадение в 2 столбце И не нашлось совпадения в 1 столбцеНу и пишешь условие в ElseIf
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Раскрасить часть текста в ячейке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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