मैं एक लूप बनाने की कोशिश कर रहा हूं, लेकिन मेरी "सूची कक्ष" वर्तमान में निम्नलिखित स्क्रिप्ट द्वारा स्थित 19 कोशिकाओं की गणना करने के बजाय, लूप मुझे लगभग 40 परिणाम दिखाता है। तुम्हारी सहायता सराहनीय है।

Sub test6()
Dim SingleCell, Listcells As Range

Workbooks("OLD CAD").Sheets("Contract History-Modifications").Range("B:B").Find(" CM Name/Number", MatchCase:=True).Select
Range(ActiveCell.Address).Offset(2, 0).Select
Range(ActiveCell.Address, Range(ActiveCell.Address).End(xlDown)).Select
Selection.Offset(0, 13).Activate
Set Listcells = Selection

For Each SingleCell In Listcells
            Select Case True
                Case Is = InStr(1, (SingleCell.Value), "Yes") > 0
                    MsgBox (SingleCell.Value)

                Case Else
                    MsgBox ("F")
    End Select
Next SingleCell

End Sub
0
Andrés diego Menéndez 15 जून 2020, 06:53

1 उत्तर

सबसे बढ़िया उत्तर

चयन/सक्रिय करने की कोई आवश्यकता नहीं है:

Sub test6()

    Dim c as range, Listcells As Range, ws As Worksheet, f as range

    Set ws = Workbooks("OLD CAD").Sheets("Contract History-Modifications") 'should also add the file extension
    Set f = ws.Range("B:B").Find(" CM Name/Number", MatchCase:=True)

    If not f is nothing then
        Set ListCells = ws.Range(f, f.End(xlDown))
        For each c in ListCells.Cells

            Debug.Print c.address, IIf(Instr(c.value, "Yes") > 0, c.value, "F")

        Next c
    else
        Debug.Print "not found!"
    end if

End Sub
0
Tim Williams 15 जून 2020, 04:23