从单元格中具有多种颜色的单元格中提取字体颜色

ojs*_*ojs 8 excel vba excel-vba

我有一张Excel表,我试图进入MySQL数据库.

  • 我正在使用VBA将数据作为文本写入文件,然后将其上传到数据库.
  • 在工作表的单元格中,有一些颜色编码的字符串.
  • 颜色具有一定的含义,所以当我将值移动到数据库中时,我想保留它们(我在数据库中有一个特殊的列,我列举了颜色).

问题是一些单元格的字符串用逗号分隔,逗号的一边是字符串是黑色,另一边是蓝色(反之亦然,单元格中可以有更多的逗号和字符串).

我试过的

我可以通过使用SplitVBA中的函数来提取字符串,但是会丢失字符串的格式.

我可以使用单元格的颜色,Range("mycell").Font.ColorIndexNULL如果字符串中有多个颜色则返回.

是否可以获得字符串的所有颜色?

示例:一个单元格可以包含以下字符串

"W345,PO3244,12309"
1.(W345)将是黑色(colorindex -4105),
2.(PO3244)将是蓝色(colorindex 47)
3.(12309)将是红色(colorindex 3).

Exc*_*ero 1

我会用来.Font.Color剔除 RGB 值,但如果您愿意,您可以将其更改为 ColorIndex。

您可以调整此策略:

Sub CellColors2CSV()
    Dim j&, k&, c$, r As Range
    Set r = ActiveSheet.Cells(1, 1)
    Do
        j = Len(r)
        k = InStr(k + 1, r, ",")
        If k Then j = k - 1
        c = c & "," & r.Characters(j, 1).Font.Color
    Loop Until k = 0
    c = Mid$(c, 2)
    MsgBox c
End Sub
Run Code Online (Sandbox Code Playgroud)