按单元格内容自动着色的VBA脚本导致表格卡顿,如何优化?
问题说明
我是VBA新手,这是我编写的第一个VBA脚本,目前功能基本符合预期,但运行时会导致表格严重卡顿,希望能找到对应的优化方案。
脚本的核心运行逻辑:
- 遍历预先定义的多个固定单元格区域
- 逐单元格检查内容是否为“S”“FE”“SF”等指定值
- 若内容匹配,为当前单元格及右侧相邻单元格设置对应背景色
- 若内容不匹配,清除这两个单元格的背景色
原始脚本代码
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim My_Range As Range Set My_Range = Worksheets("Sæson").Range("J10:J40,Q10:Q39,X10:X40,AE10:AE39,AL10:AL40,AS10:AS40,AZ10:AZ39,BG10:BG40,BN10:BN39,BU10:BU40,CB10:CB40,CI10:CI38,CP10:CP40") For Each cell In My_Range If cell.Value = "S" Then cell.Interior.Color = RGB(0, 255, 255) cell.Offset(0, 1).Interior.Color = RGB(0, 255, 255) ElseIf cell.Value = "FE" Then cell.Interior.Color = RGB(255, 192, 0) cell.Offset(0, 1).Interior.Color = RGB(255, 192, 0) ElseIf cell.Value = "SF" Then cell.Interior.Color = RGB(255, 192, 0) cell.Offset(0, 1).Interior.Color = RGB(255, 192, 0) ElseIf cell.Value = "T" Then cell.Interior.Color = RGB(49, 255, 33) cell.Offset(0, 1).Interior.Color = RGB(49, 255, 33) ElseIf cell.Value = "TK" Then cell.Interior.Color = RGB(0, 176, 240) cell.Offset(0, 1).Interior.Color = RGB(0, 176, 240) ElseIf cell.Value = "TH" Then cell.Interior.Color = RGB(255, 153, 204) cell.Offset(0, 1).Interior.Color = RGB(255, 153, 204) ElseIf cell.Value = "SY" Then cell.Interior.Color = RGB(255, 0, 0) cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0) Else cell.Interior.Color = xlNone cell.Offset(0, 1).Interior.Color = xlNone End If Next End Sub
内容的提问来源于stack exchange,提问作者jhjorsal
相关产品推荐
相关产品推荐

