Extrahieren von Schriftfarbe aus Zellen mit mehreren Farben in der Zelle

8

Ich habe ein Excel-Blatt, das ich in eine MySQL-Datenbank zu bekommen versuche.

  • Ich verwende VBA, um die Daten als Text in eine Datei zu schreiben und diese dann in die Datenbank hochzuladen.
  • In den Zellen des Arbeitsblatts befinden sich Strings, die farblich markiert sind.
  • Die Farben haben eine bestimmte Bedeutung, deshalb möchte ich sie behalten, wenn ich die Werte in die Datenbank verschiebe (ich habe eine spezielle Spalte in der Datenbank, in der ich die Farben aufzähle).

Die Sache ist, dass einige Zellen Zeichenfolgen haben, die durch Kommas getrennt sind, und auf der einen Seite des Kommas ist die Zeichenfolge schwarz, auf der anderen Seite ist sie blau (oder umgekehrt und es kann mehr Kommata und Zeichenfolgen in der Zelle geben).

was ich versucht habe

Ich kann die Strings mit der Funktion Split in VBA extrahieren, aber die Formatierung der Zeichenfolge wird dadurch verloren.

Ich kann die Farbe einer Zelle mit Range("mycell").Font.ColorIndex erhalten, aber das gibt NULL zurück, wenn mehr als eine Farbe in der Zeichenfolge ist.

Ist es möglich, alle Farben einer Zeichenfolge zu erhalten?

Beispiel: Eine Zelle könnte die folgende Zeichenfolge enthalten

  

"W345, PO3244, 12309"
   1. (W345) wäre schwarz (colorindex -4105),
   2. (PO3244) wäre blau (colorindex 47)
   3. (12309) wäre rot (Farbindex 3).

    
ojs 23.09.2015, 13:35
quelle

3 Antworten

1

Ich würde .Font.Color verwenden, um die RGB-Werte zu entfernen, aber Sie können es auch in ColorIndex ändern, wenn Sie möchten.

Sie können diese Strategie anpassen:

%Vor%     
Excel Hero 23.09.2015, 15:19
quelle
1

Sie können Folgendes verwenden und dann ein Wörterbuch / eine Sammlung / ein Array erstellen, um die Farben zu speichern und nur eindeutige Werte oder die für Ihre Situation passende Lösung beizubehalten. Dies zeigt nur, wie Sie auf alle Farben zugreifen können.

%Vor%     
Justin McCartney 23.09.2015 14:17
quelle
0

Nach der Antwort von Excel Hero gelang es mir, diesen Code zu erstellen, der meine Bedürfnisse erfüllte. Das ist eine Funktion, die die Farben in einer Collection zurückgibt (könnte auch ein Array sein):

%Vor%     
ojs 22.11.2015 21:56
quelle

Tags und Links