For Each...Next statement is another type of loop but without check or condition to test. The loop is fix between certain range or numbers. Base on table below we are going to use For Each...Next statement to get total monthly sales.
Before proceed we must understand basic offset function.
The formula for offset = Range().Offset ([RowOffset], [ColumnOffset]) for example:
Range("A1") = Range("B1").offest(0,-1) which is refer to same cell or range.
VBA Code:
Option Explicit
Sub ForEachNextStatements()
Dim RngS As Range
Dim MyRng As Range
Set MyRng = ActiveSheet.Range("D3:D14")
For Each RngS In MyRng
RngS = RngS.Offset(0, -2) + RngS.Offset(0, -1)
Next
End Sub
Sub ForEachNextStatements()
Dim RngS As Range
Dim MyRng As Range
Set MyRng = ActiveSheet.Range("D3:D14")
For Each RngS In MyRng
RngS = RngS.Offset(0, -2) + RngS.Offset(0, -1)
Next
End Sub
Another Example to Loop every Sheets:
Option Explicit
Sub ForEachNextStatementsSht()
Dim MySht As Worksheet
For Each MySht In Worksheets
'Your code goes here
Debug.Print MySht.Name
Next
End Sub
Sub ForEachNextStatementsSht()
Dim MySht As Worksheet
For Each MySht In Worksheets
'Your code goes here
Debug.Print MySht.Name
Next
End Sub
Another Example to Loop every Cells:
Option Explicit
Sub ForEachNextStatementsCell()
Dim Cell As Range
For Each Cell In ActiveSheet.UsedRange
'Your code goes here
Debug.Print Cell.Value
Next
End Sub
Sub ForEachNextStatementsCell()
Dim Cell As Range
For Each Cell In ActiveSheet.UsedRange
'Your code goes here
Debug.Print Cell.Value
Next
End Sub
Microsoft Reference - For Each..Next statement
Practice makes perfect. Thank You.
No comments:
Post a Comment