簡體   English   中英

基於活動單元格值的Excel VBA循環不會停止

[英]Excel VBA Loop That Not Stops Based On Activecell Value

我有一個循環,當activecell值為“ BBSE”時,該循環需要停止,但它會通過該單元並繼續循環。 有人可以幫我嗎? 我在一個工作台中從表中剪切行並將其粘貼到另一個工作台中。 在FI列中的列表之前有很多空白單元格,因此我使用了xldown。 以下是相關代碼:

'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

這是我要停止紅色圓圈中的循環的位置:

在此處輸入圖片說明

這就是為什么我使用END.xlDown

在此處輸入圖片說明

如果我了解您要正確實現的目標,則相信可以實現以下目標:

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

可以這樣嘗試...

'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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM