Ravindra Bagale · Excelसर्व coursesया course चे lessonsशोधाEnglish

Excel · मराठी आवृत्ती

12.10 For, For Each आणि Do loops

रवींद्र बागले यांच्या course वर आधारित · सहज मराठीत explanation

या page मध्ये

एकच काम अनेक rowsवर करायला loop वापरतो. For counterवर, For Each objectsवर आणि Do conditionवर चालतो.

Sub LoopExamples()
    Dim ws As Worksheet
    Dim r As Long
    Dim cell As Range
    Dim total As Double

    Set ws = ThisWorkbook.Worksheets("Orders")

    ' 1) For...Next with a counter: mark late deliveries
    For r = 2 To 11
        If ws.Cells(r, 8).Value > 15 Then
            ws.Cells(r, 10).Value = "Late"
        Else
            ws.Cells(r, 10).Value = "On time"
        End If
    Next r

    ' 2) For Each over cells: add up delivered amounts
    For Each cell In ws.Range("G2:G11")
        If cell.Offset(0, 2).Value = "Delivered" Then total = total + cell.Value
    Next cell
    Debug.Print "Delivered sales: "; total

    ' 3) Do While: move down until an empty cell
    r = 2
    Do While ws.Cells(r, 1).Value <> ""
        r = r + 1
    Loop
    Debug.Print "First empty row: "; r
End Sub

Code समजून घेऊ

स्वच्छ mini sampleमध्ये rows 6,8,11 Late; Delivered sales 2215; first blank row 12. Invalid Mins, errors किंवा sourceमधल्या gapsसाठी हा छोटा example अतिरिक्त validationशिवाय वापरू नका.

इतर forms: For r = lastRow To 2 Step -1, Do Until ... Loop, Exit For, Exit Do. Do loopचा counter वाढला नाही तर infinite loop होऊ शकतो; Esc/Ctrl + Breakने interrupt करता येऊ शकतं.

Practice

Delivery-fee slabs वापरून नवीन reserved columnमध्ये fee लिहा. वेगळ्या disposable copyवर Cancelled rows delete करणारा backward loop करा; आधी expected deletion count दाखवा आणि नंतर remaining totals तपासा.