在excel VBA编程中如何才能批量获取选择区域单元格的颜色?
当前选择区域不只有几个单元格,而是很多,循环获取有些慢,有没有更快的方法?
读颜色貌似只能用循环。
试试在程序中关闭屏幕更新能否改善
Application.ScreenUpdating = False
程序结束前再复原:Application.ScreenUpdating = True
试试在程序中关闭屏幕更新能否改善
Application.ScreenUpdating = False
程序结束前再复原:Application.ScreenUpdating = True
温馨提示:答案为网友推荐,仅供参考
第1个回答 2014-01-16
Sub 选择区域万位以下变为灰色()'同时小数点后面设置为2位。 Dim r1 As Range Dim i, q, l, k As Long Dim p As String Selection.NumberFormatLocal = "@" Selection.HorizontalAlignment = xlRight For Each r1 In Selection r1.Select r1 = Format(r1.Text, "0.00") p = r1.Text l = InStrRev(p, ".") k = Len(p) If l = 0 Then l = k + 1 With ActiveCell.Characters.Font .ColorIndex = 1 End With With ActiveCell.Characters(Start:=l - 4, Length:=k - l + 5).Font .ColorIndex = 15 End With Next r1End Sub
第2个回答 2014-01-16
之前也没弄过,刚才录制宏看了一下代码,range下有个interior属性,里面的color可以参考一下。如果该区域是单一颜色,则有数,如果颜色不单一,则是0
说实话,循环挺快的
说实话,循环挺快的