2

こんにちは、シート内の特定の値をチェックするためにvbでコードを書いています。値が利用できない場合は、別のシートに戻って新しい値を取得し、値が見つかった場合は何らかの操作を行う必要がありますそのシートには、シート内の値を見つけるための以下のコードがありますが、条件としてDO WHILEループで同じものを渡すと、コンパイルエラーが発生します

値のコードを見つける

Selection.Find(What:=last_received, After:=ActiveCell, LookIn:= _
    xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
    xlNext, MatchCase:=False, SearchFormat:=False).Activate

ループ条件で上記の find を使用して DO WHILE のコードを記述して、条件が false の場合 (つまり、シートに値が見つからない場合)、他の値を使用して探す

これはループに入れるコードです

Sheets("Extract -prev").Select
    Application.CutCopyMode = False

    ActiveWorkbook.Worksheets("Extract -prev").Sort.SortFields.Clear   'sorting with tickets
    ActiveWorkbook.Worksheets("Extract -prev").Sort.SortFields.Add Key:=Range( _
        "C2:C2147"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Extract -prev").Sort
        .SetRange Range("A1:AB2147")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Application.Goto Reference:="R1C3"        'taking last received ticket
    Selection.End(xlDown).Select
    Selection.Copy
    Sheets("Calc").Select
    Application.Goto Reference:="Yesterday_last_received"
    ActiveSheet.Paste

このコードは最後のチケットを取得しますが、次のシート「抽出」での利用可能性に基づいて、最後のチケットの前に1つのチケットを取得する必要があります(以降)。

4

1 に答える 1