Wie färben Sie nur Zahlen und Sonderzeichen in einer Microsoft Excel-Zelle ein?

693
gabeweb

Ist es möglich, nur Zahlen und Sonderzeichen einer Zelle (oder Spalte) durch bedingte Formatierung oder eine andere ähnliche Methode einzufärben?

Ich habe in Excel ein Buch erstellt, um meine Passwörter zu organisieren (oder um meine Passwörter zu ordnen, bevor sie in einen Passwort-Manager exportiert werden). In der Spalte "Kennwörter" möchte ich, dass Excel die Zahlen und Sonderzeichen einfärbt, um sie vom restlichen Text zu unterscheiden.

Beispiel: Enpass 6

Ich habe dies in der Anwendung Enpass 6 (Beta) gesehen und der Effekt hat mir gefallen, und ich weiß nicht, ob Sie etwas Ähnliches in Excel implementieren können.

Beispiel: Microsoft Excel 2016

Vielen Dank für jede Empfehlung oder Idee.

Ps 1: Anhang-Screenshots von Enpass und der Effekt, den ich in Excel sehen möchte, zum Beispiel haben die Zahlen eine Farbe und die Sonderzeichen eine andere Farbe.

Ps 2: Ich stelle fest, dass ich nicht so gut programmiert bin. Wenn Sie also einen Visual Basic-Code empfehlen, versuchen Sie dies bitte mit Ihren Kommentaren.

Ps 3: Nochmals vielen Dank für Ihre Hilfe.

0
vba ist der einzige Weg, dies zu tun. Scott Craner vor 5 Jahren 0

1 Antwort auf die Frage

0
jrichall

Willkommen bei SuperUser. VBA ist nicht so beängstigend, wie es auf den ersten Blick erscheinen mag, und dies ist ein großartiges Projekt, um einige Funktionen zu verstehen.

Zunächst sollten Sie die Registerkarte "Entwickler" in Excel aktivieren .

1 - Klicken Sie auf die Registerkarte Datei.

2 - Klicken Sie auf Optionen.

3 - Klicken Sie auf Multifunktionsleiste.

4- Aktivieren Sie unter Anpassen der Multifunktionsleiste und unter Hauptregisterkarten das Kontrollkästchen Entwickler.

Drücken Sie Alt + F11, um den VBA-Editor zu öffnen. Erstellen Sie dann "Neues Modul", indem Sie es aus der Dropdown-Liste hier auswählen:

enter image description here

Fügen Sie den folgenden Code in das neue Fenster ein. (Es sieht nach viel aus, aber es ist nicht zu viel, sobald Sie damit beginnen).

 '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 

Ihr Modul sollte jetzt so aussehen .

Jetzt können Sie die Farben ändern. Wählen Sie zunächst alle Zellen aus, in denen Sie die Farbe ändern möchten.

enter image description here

Öffnen Sie als Nächstes die Registerkarte "Entwickler" (1) und klicken Sie auf die Schaltfläche "Makros" (2):

enter image description here

Sie sollten Ihr ColorText-Makro sehen. Wählen Sie es aus und klicken Sie auf Ausführen

enter image description here

Und Ihr Text sollte je nach Zeichentyp farbig sein!

enter image description here

Dadurch wird die Farbe der Zeichen in ausgewählten Zellen geändert. Sie können also eine ganze Spalte oder einzelne Zellen auswählen.

enter image description here

Wenn Sie sich mit dem Code beschäftigen möchten, drücken Sie einfach die Tastenkombination Alt + F11, um den VBA-Editor zu öffnen. Sie müssen auf Modul 1 doppelklicken, um es zu öffnen.

Um die Farben im VBA zu ändern, finden Sie in diesem Diagramm Farboptionen und entsprechende Zahlen.

Ich hoffe das hilft. Sie können dieses Makro sogar einer Schaltfläche oder einer benutzerdefinierten Tastenkombination zuweisen .

Hallo @jrichall. Vielen Dank für Ihre ausführliche und didaktische Antwort. Eigentlich funktioniert dieser Code sehr gut, aber jetzt habe ich andere Zweifel: Ich sehe, dass der Code funktioniert, wenn die Werte direkt in die Zelle geschrieben werden, nicht aber, wenn sie aus dem Ergebnis einer Formel stammen (die betreffende Zelle ist beispielsweise die Verkettung des Inhalts anderer Zellen und derjenigen, die das Kennwort "CONCATENATE (B2; B3; B4)" bilden. Welcher Wert sollte in diesem Fall im Code geändert werden? Ich habe es versucht und es wird der Fehler 1004 ausgegeben, der auf die Zeile zeigt "Wenn IsLetter (.Text) Then" gabeweb vor 5 Jahren 0