2013-06-03 2 views
0

Я пытаюсь настроить простой цикл в Excel VBA, который начинается с указанной строки и повторяется до конца документа? Кажется, я не знаю, как это сделать через Google. Любая помощь будет принята с благодарностью.Excel, for loop issue

+1

Обратитесь по ссылке http://stackoverflow.com/questions/6301665/row-number-of-last-cell-with-data – Santosh

+1

и [этой ссылке] (http://support.microsoft.com/kb/299036). – chuff

+2

Или этот: [Создание цикла в VBA] (http://stackoverflow.com/a/16745181/138938) –

ответ

1

Это будет проходить через строки до тех пор, пока не будет найдена пустая ячейка.

Dim iRow As Integer 
    iRow = 0 
    Do 
    iRow = iRow + 1 
    'do something 
    Debug.Print ActiveSheet.Range("A" & iRow).Value 

    Loop Until ActiveSheet.Range("A" & iRow).Formula = "" 
+0

Обратите внимание, что это не сработает, если у вас есть пустые строки в цикле, в котором вы зацикливаете. –

+0

Да, поэтому он говорит, что «будет просматривать строки до тех пор, пока не будет найден BLANK-элемент». – nemmy

+1

Множество наборов данных имеют пустые ряды, посыпанные повсюду. Если вы остановитесь, как только вы нажмете пробел, вы не будете обрабатывать все данные. Стандартный подход к этому заключается в том, чтобы найти последнюю строку, и они останавливаются, когда вы нажимаете это, а не пустое. –

-2
Dim CurrentRow 
Dim LastRow 
Dim i 

CurrentRow = ActiveCell.Row 
CurrentColumn = ActiveCell.Column 
LastRow = ActiveSheet.Rows.Count 

For i = CurrentRow to LastRow 
    Cells(i, CurrentColumn).Value = "X" 
Next i 
1

Если вы хотите пользователю указать, в какой ячейке, чтобы начать в этом будет работать.

Sub myLoop() 
Dim userInput As String 
Dim count As Integer 
Dim first As Integer 

userInput = InputBox("Which cell would you like to start in?", "Enter Range like 'A1'") 
first = ActiveSheet.Range(userInput).Row 
count = ActiveSheet.UsedRange.Rows.count 

For i = first To count 
    MsgBox "Row: " & i 
    'Replace the above msgbox function with the code you would like to run 
Next i 
End Sub