Можно ли раскрасить только числа и специальные символы ячейки (или столбца) условным форматированием или другим подобным способом?

Я создал книгу в Excel, чтобы упорядочить свои пароли (или привести их в порядок перед экспортом в менеджер паролей). Затем в столбце "пароли" я бы хотел, чтобы Excel раскрасил цифры и специальные символы, чтобы отличить их от остального текста.

Пример: Enpass 6

Я видел это в приложении Enpass 6 (бета), и мне понравился эффект, и я не знаю, сможете ли вы реализовать нечто подобное в Excel.

Пример: Microsoft Excel 2016

Большое спасибо за любую рекомендацию или идею.

Ps 1: Приложение скриншоты Enpass и эффект, который я хотел бы видеть в Excel, например, номера имеют один цвет, а специальные символы другого цвета.

PS 2: Я отмечаю, что я не настолько опытный программист, поэтому, если вы порекомендуете код на Visual Basic, пожалуйста, оставьте свои комментарии, чтобы попытаться понять

PS 3: большое спасибо за вашу помощь, снова.

1 ответ1

0

Добро пожаловать в SuperUser. VBA не так страшен, как может показаться на первый взгляд, и это отличный проект, чтобы начать понимать некоторые функции.

Во-первых, вы должны включить вкладку разработчика в Excel.

1 - Перейдите на вкладку «Файл».

2 - Нажмите Параметры.

3 - Нажмите «Настроить ленту».

4. В разделе «Настройка ленты» и в разделе «Основные вкладки» установите флажок «Разработчик».

Затем нажмите Alt+F11, чтобы открыть редактор VBA, затем создайте "Новый модуль", выбрав его в раскрывающемся списке здесь:

Вставьте следующий код в открывшееся новое окно. (похоже, что много, но после того, как вы начнете с ним работать, ничего особенного)

    'The following Function helps Excel identify if a character is a letter or not
Function IsLetter(strValue As String) As Boolean
    Dim intPos As Integer
    For intPos = 1 To Len(strValue)
        Select Case Asc(Mid(strValue, intPos, 1))
            Case 65 To 90, 97 To 122
                IsLetter = True
            Case Else
                IsLetter = False
                Exit For
        End Select
    Next
End Function
'The following function helps Excel identify if a character is a special character, like #, @, and !
Function IsSpecial(strValue As String) As Boolean
    Dim intPos As Integer
    For intPos = 1 To Len(strValue)
        Select Case Asc(Mid(strValue, intPos, 1))
            Case 33 To 47, 58 To 64, 91 To 96, 123 To 126
                IsSpecial = True
            Case Else
                IsSpecial = False
                Exit For
        End Select
    Next
End Function
'This is the Macro that will change the colors of characters in your selected range
Public Sub ColorText()
'the next 3 lines set abbreviations as certain kinds of things. Long is a number or integer, Ranges are cell selections
Dim lng As Long
Dim rng As Range
Dim cl As Range
'The next line sets the range of cells to change colors in to whatever cells you have selected on the sheet
    Set rng = Selection
'This section loops through each cell in your selection and checks each character in the cell.
    For Each cl In rng.Cells
    For lng = 1 To Len(cl.Value)
        With cl.Characters(lng, 1)
'First the code checks for letters and keeps them black
        If IsLetter(.Text) Then
            .Font.ColorIndex = 1 'change this number to change the color

'Next it checks for Special Characters and colors them Blue
        ElseIf IsSpecial(.Text) Then
            .Font.ColorIndex = 41

'If a character is not a letter or a special, it must be a number, so it colors numbers red
        Else
            .Font.ColorIndex = 3

        End If
        End With
    Next lng    'this moves the code to the next character
  Next cl       'once all the characters are checked, this moves the code to the next cell
End Sub         'once all the selected cells have been run through, this ends the code

Ваш модуль должен выглядеть следующим образом.

Теперь вы готовы начать менять цвета. Сначала выберите все ячейки, на которые вы хотите изменить цвета.

Затем откройте вкладку «Разработчик» (1) и нажмите кнопку «Макросы» (2):

Вы должны увидеть свой макрос ColorText. Выберите его и нажмите Run

И ваш текст должен быть окрашен в зависимости от типа символа!

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

Если вы когда-нибудь захотите возиться с кодом, просто нажмите Alt+F11, чтобы открыть редактор vba. Вам нужно будет дважды щелкнуть по модулю 1, чтобы открыть его.

Чтобы изменить цвета в VBA, обратитесь к этой таблице для вариантов цвета и соответствующих номеров.

Надеюсь, это поможет. Вы даже можете назначить этот макрос для кнопки или пользовательского сочетания клавиш.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .