[英]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.