2017-09-07 14 views
0

列A、B、C、Dのデータに従って値を更新するループVBAを作成しました。しかし、私はこのループを停止する必要があります 'D'列が空または値を持っていません。VBAでループを停止する方法

Sub Macro1() 
' 
    ' Set Do loop to stop when an empty cell is reached. 

Do Until IsEmpty(ActiveCell) 

    Range("C2").Select 
    Range("C2").End(xlDown).Offset(1, -2).Select 
    Selection.ClearContents 

    Range("C2").End(xlDown).Offset(0, -2).Select 
    Range(Selection, Selection.End(xlUp)).Select 
    Selection.FillDown 

    Range("C2").End(xlDown).Offset(1, 0).Select 
    ActiveCell.FormulaR1C1 = "Logged out" 

    ActiveCell.Offset(1, 0).Select 

    Loop 

End Sub 

答えて

1

このタスクを達成するために多くの方法があります。 1つの方法があります。

Sub Test1() 
'UpdatebyExtendoffice20161222 
     Dim x As Integer 
     Application.ScreenUpdating = False 
     ' Set numrows = number of rows of data. 
     NumRows = Range("D1", Range("D1").End(xlDown)).Rows.Count 
     ' Select cell D1. 
     Range("D1").Select 
     ' Establish "For" loop to loop "numrows" number of times. 
     For x = 1 To NumRows 
     ' Insert your code here. 
     ' Selects cell down 1 row from active cell. 
     ActiveCell.Offset(1, 0).Select 
     Next 
     Application.ScreenUpdating = True 
End Sub 
0
If isEmpty(Range(x)) then exit do end if 
関連する問題