You need to enable JavaScript to run this app. 按单元格内容自动着色的VBA脚本导致表格卡顿,如何优化?
优惠活动
大模型
产品
解决方案
定价
更多

按单元格内容自动着色的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.03 21:06:04