首页 > 解决方案 > 在不同范围内循环VBA

问题描述

下面的代码运行良好,但需要现代化。此代码用于一个表,它一直有效到表结束。但我在实际(存在)表下方的同一页面添加了附加表。我需要通过 3 个空单元格跳过 i (循环)并为下表启动代码。换句话说,要在下面找到下一个表并在那里实现代码。如何实现(实现)这一点?

Sub Test()
Dim score1 As Double, score2 As Double, score3 As Double, result As String, text As String

Dim ifrom As Long, ito As Long
Dim i As Long

ifrom = 2
ito = Range("E2").End(xlDown).Row ' find the row above the 1st blank cell in column E

name1 = "A"       
name2 = "B"    
audit = "C"      
currenc = "Dollars"       


For i = ifrom To ito

    text = Range("E" & i).Value
    score1 = Int(Range("B" & i).Value)
    score2 = Int(Range("C" & i).Value)
    score3 = Int(Abs(Range("D" & i).Value))


If score1 = 0 And score2 = 0 Then
    result = text + ......

ElseIf score1 = score2 Then
    result = text +........

ElseIf score1 > score2 And score2 <> 0 Then
    result = text + ............

ElseIf score1 < score2 And score1 <> 0 Then
    result = text +......

Else
    result = text + " 00000000"

End If

Range("H" & i).Value = result
Next i
End Sub

标签: excelvba

解决方案


另外,因为您的公式仅与同一行相关,您可以尝试以下更简单的方法:

Sub Test()
    Dim score1 As Double, score2 As Double, score3 As Double, result As String, text As String

    Dim ifrom As Long, ito As Long
    Dim i As Long

    ifrom = 2
    ito = Range("E" & Rows.Count).End(xlUp).Row 'This row changed

    name1 = "A"
    name2 = "B"
    audit = "C"
    currenc = "Dollars"

    For i = ifrom To ito
        If Range("E" & i).Value <> "" Then
            '.... Your code goes here
        End If
    Next i
End Sub

推荐阅读