下面的代码很好用,但是需要进行现代化。 此代码用于一个表,直到表末尾都有效。但是我在实际(存在)表的同一页下添加了加法表。我需要跳过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
答案 0 :(得分:0)
尝试一下:
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
答案 1 :(得分:0)
此外,由于您的公式仅与同一行相关,因此您可以尝试以下更简单的方法:
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