首页 > 解决方案 > Excel VBA为指定单元格提供数字,避免选择

问题描述

我在 Excel 中有以下 VBA 代码。它是非常长的 VBA 的一部分,负责许多进程。如何摆脱 Select 命令?我尝试了几件事都没有成功。

ActiveWorkbook.Sheets("Installation").Select
    For Each Cl14 In ThisWorkbook.Sheets("Installation").Range("G2", Range("G" & Rows.Count).End(xlUp))
      Select Case LCase(Cl14.Value)
         Case "main"
            m14 = m14 + 1: s14 = 0: ss14 = 0
            Cl14.Offset(, -6).Value = m14
         Case "sub"
            s14 = s14 + 1: ss14 = 0
            Cl14.Offset(, -6) = m14 & "." & s14
         Case "sub-sub"
            ss14 = ss14 + 1
            Cl14.Offset(, -6) = m14 & "." & s14 & "." & ss14
      End Select
   Next Cl14

标签: excelvbaoptimization

解决方案


可以做一个强制循环来防止选择案例。但我个人更喜欢使用选择案例。

For i = 2 To .Range("G" & .Rows.Count).End(xlUp).Row
If .Range("G" & i).Value = "main" Then
'code here
ElseIf .Range("G" & i).Value = "sub" Then
'code here
ElseIf .Range("G" & i).Value = "sub-sub" Then
'code here
End If
Next i

推荐阅读