2017-10-10 54 views
-1

空白のセルが見つかった場合、ループを実行するソリューションを見つけるのに問題があります。これまでにVBAを使用したのは初めてですが(最後のほうがいいと思いますが)、事前に助けとアドバイスをいただき、ありがとうございます。Excel VBA:空白のセルが見つかった場合ループを終了する方法

基本的には、値の列(「単位」)に対して、各値をコピーして入力ボックスに貼り付け、結果をコピーして別の場所に貼り付け、「単位"列は空白です。

この状態をどのように入れるべきかアドバイスをいただければ幸いです。私は様々な "Do while ..."や "If ..."などを試みましたが、構造を壊すことはできませんでした。


Sub ResultsTable() 

    Application.ScreenUpdating = False 

    Dim UnitRows As Integer 
    UnitRows = Range("Units").Rows.Count 

    Do While Range("Units").Cells(i, 1).Value <> "" 

    i = i + 1 

     Range("Units").Cells(i, 1).Copy 
     Range("Input").PasteSpecial xlPasteValues 

     Range("ABBA").Copy 
     Range("ABBAO").Cells(i, 1).PasteSpecial xlPasteValues 

     Range("BABBA").Copy 
     Range("BABBAO").Cells(i, 1).PasteSpecial xlPasteValues 

     Range("CABBA").Copy 
     Range("CABBAO").Cells(i, 1).PasteSpecial xlPasteValues 

     Range("DABBA").Copy 
     Range("DABBAO").Cells(i, 1).PasteSpecial xlPasteValues 



    Range("Units").Copy 
    Range("UnitsOutput").PasteSpecial xlPasteValues 

    Application.ScreenUpdating = True 

End Sub 
+0

コードを4つのスペースでインデントしてください。正しく表示されるようにしてください。 – jsotola

+0

do-whileループはどうですか? 'Do while Range(" Units ")。セル(i、1).Value <>" "'ループ内に 'i = i + 1'行を追加することを忘れないでください。 – newacc2240

+0

Marcoがループをスキップして空白でスキップしたいが、次の行を続行したい場合は、If文( 'Units ')をif文に追加することができます。あなたの現在のforループの中に何かがあります。 – newacc2240

答えて

0

あなた缶は、このように空白であるかどうかをチェックするために.Valueのプロパティを使用します:セルが空白の場合にはFalseを返す

Range("Units").Cells(i, 1).Value <> ""

を。

ループをスキップしたり、ループがブランクに合致する場合はループ全体を終了するコードが必要なのかどうかはわかりません。 現在のループをスキップするだけで済む場合は、if文を使ってforループを試してください。

For i = 1 To UnitRows 
    If Range("Units").Cells(i, 1).Value <> "" Then 
     'your code here 
    End If 
Next i 

セル(i、1)が空白の場合、MarcoはUnitRowsに到達するまで次に進む。

ループを終了する場合は、Do-whileループを試してください。

Do While Range("Units").Cells(i, 1).Value <> "" 
    'your code here 
    i = i + 1 
Loop 

セル(i、1)が空白の場合、条件はFalseになり、ループは停止します。

ForループとWhileループの両方を同時に使用している間は常に注意してください。特に、同じ変数iを使用してループを制御していることに注意してください。

+0

ありがとう、ループは完全に動作します! Do Whileオプションは、空のセルが見つかると停止するようにしたので、私は行った。 –

関連する問題