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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Подсветить цифры в выделенном массиве
timo64uk Дата: Вторник, 17.12.2024, 04:09 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 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
Группа: Друзья
Ранг: Экселист
Сообщений: 9025
Репутация: 2374 ±
Замечаний: 0% ±

Excel 2010
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 IsNumeric(Mid(c3, i3, 1)) Then
            c3.Characters(Start:=i3, Length:=1).Font.ColorIndex = 3
        End If
    Next i3
[/vba]


Ю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 IsNumeric(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
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 119
Репутация: 1 ±
Замечаний: 0% ±

Office16
проще

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

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

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

Excel 2010
Думал "цифр же мало
да действительно...
[vba]
Код
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
[/vba]апдэйт: добавил немного ускорителя


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Среда, 18.12.2024, 11:31
 
Ответить
Сообщение
Думал "цифр же мало
да действительно...
[vba]
Код
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
[/vba]апдэйт: добавил немного ускорителя

Автор - Nic70y
Дата добавления - 18.12.2024 в 10:29
  • Страница 1 из 1
  • 1
Поиск:

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