2017-09-07 15 views
0

アクティブセルの値が "BBSE"のときに停止する必要のあるループがありますが、セルを通過してループを続行します。誰かが私を助けることができますか? 1つのワークボック内のテーブルから行を切り取り、別のワークボックに貼り付けます。列Fのリストの前に私は多くの空白のセルがあり、そのために私はusind xldownです。ここ は、関連するコードです:私は赤い円の中にループを停止するのはここアクティブセルの値に基づいて停止しないExcel VBAループ

'Illuminators Worksheet 
OP_wb.Activate 
Range("F2").End(xlDown).Select 


Do Until ActiveCell.Value = "BBSE" 
    OP_wb.Activate 
    Worksheets("Optic Main").Activate 
    Range("F2").End(xlDown).Select 
    Selection.EntireRow.Cut 
    Demand_WB.Activate 
    Worksheets("Illuminators").Activate 
    Range("A" & Rows.Count).End(xlUp).Offset(1).Select 
    ActiveSheet.Paste 


Loop 

は次のとおりです。

enter image description here

私はEND.xlDown

を使用しています理由ですenter image description here

+0

これが一致することはありません、あなたがそれに対して、列の内容と一致するようにしようとしているとして、単一の細胞。 – Luuklag

+1

あなたの 'ActiveCell'は列Aにあります! (そして別のシート上で、そして別のワークブックで?)(最初のループを除いて) – YowE3K

+2

基本的に、 'Activate'と' Select'を使用して停止してください。 https://stackoverflow.com/q/10714251/6535336を参照してください。 – YowE3K

答えて

1

私はあなたが正しく達成しようとしているものを理解していれば、私は次のようにそれを達成すると信じて:

Dim startRow As Long 
Dim endRow As Long 
With OP_wb.Worksheets("Optic Main") 
    startRow = .Range("F2").End(xlDown).Row 
    endRow = .Columns("F").Find(What:="BBSE", LookIn:=xlValues, LookAt:=xlWhole).Row 
    .Rows(startRow & ":" & endRow).Cut 
End With 
With Demand_WB.Worksheets("Illuminators") 
    .Range("A" & .Rows.Count).End(xlUp).Offset(1).Insert Shift:=xlDown 
End With 
+0

素晴らしい!できます! –

0

このようにしてみてください...

'Mentioning Starting Row Here 
x = 2 

Do 
    'x refers to Row and F refer to column name 
    With Cells(x, "F") 
     'Exiting Do Loop once it finds the matching value using If statement 
     If .Value = "BBSE" Then Exit Do 
     OP_wb.Activate 
     Worksheets("Optic Main").Activate 
     .EntireRow.Cut 
     Demand_WB.Activate 
     Worksheets("Illuminators").Activate 
     Range("A" & Rows.Count).End(xlUp).Offset(1).Select 
     ActiveSheet.Paste 
    End With 
    'Incrementing row number here to move on to next row 
    x = x + 1 
Loop 
+0

エンド我々はElseステートメントを:)使用していないので、VBAで必要とされないなら – Sixthsense

+1

@Sixthsenseは実際に、正しい答えは「'それはシングルライン' If'であるため、エンドIf'が必要とされていません」 。単一行の「If」は、「Else」を含むことができる。 'もしa = bならばc = 5、それ以外はc = 6'。 – YowE3K

+0

お役立ち情報私は私のコメントを削除します。 – Luuklag

関連する問題