Excel VBA-格式不一致的文本字符串

时间:2018-08-07 11:19:46

标签: excel string excel-vba string-formatting conditional-formatting

Excel VBA格式化不一致的文本字符串似乎是一个巨大的挑战,因此我正在寻找一种解决方案来格式化下表:

table without formatting

该表可能包含必须手动检查的大行行,因此使其具有尽可能高的可读性很重要。不幸的是,列C包含一个非常长且混乱的文本字符串,该字符串不一致,并且不能更改,因为它是从另一个系统导入的。

因此,我想执行以下操作:

  • 在C列中使文本字符串的所有不重要部分 浅灰色突出显示行(A:C列中的单元格)
  • 如果在C列中找到'the_good_indicator',请突出显示其中包含某些字符串元素(例如电话号码)的特定单元格 '00111222333'

表格应如下所示: desired look of the table

我做过一些研究,并在以下地方找到了部分答案:

我能得到的最好的还是这样的表: table with current formatting

...我通过使用代码获得:

Columns("C").Select
Selection.FormatConditions.Add Type:=xlTextString, String:="the_good_indicator", _
    TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
    .Color = -16752384
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .ColorIndex = 43
    .TintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Selection.FormatConditions.Add Type:=xlTextString, String:="00111222333", _
    TextOperator:=xlContains
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Font
    .Color = -16752384
    .TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
    .PatternColorIndex = xlAutomatic
    .Color = 13561798
    .TintAndShade = 0
End With

我将感谢您对如何为此类不一致的文本字符串设置格式的任何帮助或想法。

0 个答案:

没有答案