VBA查找string的字体颜色
我是新的VBA ..我正在写一个macros的一些文件比较..我的要求是如果一个string有红色的字体,该string应该被忽略的迭代和代码应该移动到下一个迭代..我已经尝试了以下码。
Dim compare = {"test1","test2","test3",.....etc} i=0 For j=1 to Ubound(compare) j=1 If compare.Characters(j,Len(compare(i))).Font.Color <> vbRed Then ' Some Code End If i=i+1 Next
但是在执行期间,我得到运行时错误424“对象Required.Please帮我完成这个任务
提前致谢。
说我们有单元格A1到A4像:
然后这段代码会find非红色字符:
Sub ColorTest() Dim I As Long, J As Long For I = 1 To 4 For J = 1 To Len(Cells(I, 1).Value) If Cells(I, 1).Characters(Start:=J, Length:=1).Font.Color <> vbRed Then MsgBox "non-red found at cell A" & I & " position " & J End If Next J Next I End Sub
我可以假设你的数据源是一个Excel工作表(正如前面的评论所指出的那样,一个纯粹的string不包含颜色信息),出于某种原因,你想使用一个数组。 那么这可能是一种解决问题的方法(先决条件:完整的string只有一种颜色)
(刚刚看到有一个Gary的学生提供的解决scheme,而不使用数组…以及提供的情况下,只有部分string是红色的…好的!)
Sub colour() Dim arr_DB As Variant Dim i As Long ReDim arr_DB(1, 1) 'Array size to be adjusted as needed, Base 0 ! For i = 1 To 2 arr_DB(i - 1, 0) = ActiveSheet.Cells(i, 1).Value 'Value of Cell arr_DB(i - 1, 1) = ActiveSheet.Cells(i, 1).Font.Color 'Colour of Font in Cell Next If arr_DB(i - 1, 1) = 255 Then ' No. 255 is colour RED 'skip..... End If End Sub