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

 

= Мир MS Excel/Подсветить цифры в выделенном массиве - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Подсветить цифры в выделенном массиве
timo64uk Дата: Вторник, 17.12.2024, 04:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Добрый день :)
Есть похожая тема тут.
Но отчего-то не распознает числа, если они не отделены от текста пробелом и
не распознает числа, если в ячейке есть число не отделенное пробелом и есть отделенное пробелом.
Как можно подсветить числа в выделенном массиве? (даже, если в ячейке только числа без текста).
К сообщению приложен файл: 5854.xlsm (15.9 Kb)


Сообщение отредактировал timo64uk - Вторник, 17.12.2024, 04:09
 
Ответить
СообщениеДобрый день :)
Есть похожая тема тут.
Но отчего-то не распознает числа, если они не отделены от текста пробелом и
не распознает числа, если в ячейке есть число не отделенное пробелом и есть отделенное пробелом.
Как можно подсветить числа в выделенном массиве? (даже, если в ячейке только числа без текста).

Автор - timo64uk
Дата добавления - 17.12.2024 в 04:09
Nic70y Дата: Вторник, 17.12.2024, 07:39 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9130
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
timo64uk, у вас цикл начинается с 13 символа

For i3 = 13 To Len(c3)

, а нужно с первого

For i3 = 1 To Len(c3)


апдэйт, для цифр можно проще

    For i3 = 1 To Len(c3)
        If IsNumeric(Mid(c3, i3, 1)) Then
            c3.Characters(Start:=i3, Length:=1).Font.ColorIndex = 3
        End If
    Next i3



ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Вторник, 17.12.2024, 07:42
 
Ответить
Сообщениеtimo64uk, у вас цикл начинается с 13 символа[vba]
For i3 = 13 To Len(c3)
[/vba], а нужно с первого[vba]
For i3 = 1 To Len(c3)
[/vba]
апдэйт, для цифр можно проще
[vba]
    For i3 = 1 To Len(c3)        If IsЧumeric(Mid(c3; i3; 1)) Then            c3.Characters(Start:=i3; Length:=1).Font.ColorIndex = 3        End If    Next i3
[/vba]

Автор - Nic70y
Дата добавления - 17.12.2024 в 07:39
timo64uk Дата: Среда, 18.12.2024, 03:22 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 121
Репутация: 1 ±
Замечаний: 0% ±

Office16
Цитата Nic70y, 17.12.2024 в 07:39, в сообщении № 2 ( писал(а)):
проще

Спасибо большое за помощь.
Думал "цифр же мало и перебрать их все в коде и присвоить им цвет"
 
Ответить
Сообщение
Цитата Nic70y, 17.12.2024 в 07:39, в сообщении № 2 ( писал(а)):
проще

Спасибо большое за помощь.
Думал "цифр же мало и перебрать их все в коде и присвоить им цвет"

Автор - timo64uk
Дата добавления - 18.12.2024 в 03:22
Nic70y Дата: Среда, 18.12.2024, 10:29 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9130
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
Цитата timo64uk, 18.12.2024 в 03:22, в сообщении № 3 ( писал(а)):
Думал "цифр же мало
да действительно...

Sub ShowCifer()
    Application.ScreenUpdating = False
    With CreateObject("VBScript.Regexp")
        .Global = True
        .Ignorecase = True
        .Pattern = "[0-9]"
        For Each c In Selection.SpecialCells(xlCellTypeConstants, 23)
            h = Len(c)
            d = h - Len(.Replace(c, ""))
            If d > 0 Then
                g = 1
                i = .Replace(c, 0)
                For e = 1 To d
                    g = InStr(Mid(i, g, h), 0) + g
                    c.Characters(Start:=g - 1, Length:=1).Font.ColorIndex = 3
                Next
            End If
        Next
    End With
End Sub

апдэйт: добавил немного ускорителя


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 18.12.2024, 11:31
 
Ответить
Сообщение
Цитата timo64uk, 18.12.2024 в 03:22, в сообщении № 3 ( писал(а)):
Думал "цифр же мало
да действительно...
[vba]
Sub ShowCifer()    Application.ScreenUpdating = False    With CreateObject("VBScript.Regexp")        .Global = Тrue        .Ignorecase = Тrue        .Pattern = "[0-9]"        For Each c In Selection.SpecialCells(xlCellTypeConstants; 23)            h = Len(c)            d = h - Len(.Replace(c; ""))            If d > 0 Then                g = 1                i = .Replace(c; 0)                For e = 1 To d                    g = InStr(Mid(i; g; h); 0) + g                    c.Characters(Start:=g - 1; Length:=1).Font.ColorIndex = 3                Next            End If        Next    End WithEnd Sub
[/vba]апдэйт: добавил немного ускорителя

Автор - Nic70y
Дата добавления - 18.12.2024 в 10:29
Kuzmich Дата: Среда, 18.12.2024, 23:29 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 715
Репутация: 157 ±
Замечаний: 0% ±

Excel 2003
timo64uk
а чем не понравился макрос в файле из первого сообщения
только надо

For i3 = 1 To Len(c3)

 
Ответить
Сообщениеtimo64uk
а чем не понравился макрос в файле из первого сообщения
только надо
[vba]
For i3 = 1 To Len(c3)
[/vba]

Автор - Kuzmich
Дата добавления - 18.12.2024 в 23:29
boa Дата: Среда, 25.12.2024, 20:58 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 563
Репутация: 167 ±
Замечаний: 0% ±

365
timo64uk,
Excel не красит цифры,
Что бы проводить окрашивание шрифта надо перевести значение ячейки в текст, и потом посимвольно можно текст красить
Вы никогда не окрасите 5-й или 1-й символ цифры в Excel. Или все или ничего.


 
Ответить
Сообщениеtimo64uk,
Excel не красит цифры,
Что бы проводить окрашивание шрифта надо перевести значение ячейки в текст, и потом посимвольно можно текст красить
Вы никогда не окрасите 5-й или 1-й символ цифры в Excel. Или все или ничего.

Автор - boa
Дата добавления - 25.12.2024 в 20:58
  • Страница 1 из 1
  • 1
Поиск:

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