繁体   English   中英

在不同范围内循环VBA

[英]Loop in different ranges VBA

下面的代码很好用,但需要进行现代化。 此代码用于一个表,直到表末尾都有效。 但是我在实际(存在)表的同一页下添加了加法表。 我需要跳过3个空单元格(循环)并为下面的下表启动代码。 换句话说,要找到下面的表格并在那里执行代码。 如何实现(实现)?

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

尝试这个:

Sub Test()

    '... Define your variables ....

    Dim LastRow As Long
    LastRow = Range("E" & Rows.Count).End(xlUp).Row

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

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

        For i = ifrom To ito
            '... Your code comes here ...
        Next i
        ifrom = Range("E" & ifrom).End(xlDown).Row ' find top of next table, if no table return last row of worksheet
    Loop While ifrom < LastRow
End Sub

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM