Как исправить ошибку во время выполнения во вложенных циклах для VBA?

#excel #vba #nested-loops

Вопрос:

У меня возникла проблема с решением следующей проблемы.

Я должен прочитать данные Имена и отчества, а затем вывести все возможные комбинации в столбцах рядом с ним.

Ввод:

Первый Средний
Пенелопа Джилл
Гвинет Диана
Алиса Хайди
Анна Лилия
Виктория

Я чувствую, что мой код верен (или, по крайней мере, довольно близок), но я продолжаю получать ошибку во время выполнения.

Это мой код:

 Sub LoopsHW2()  Dim First As Range Dim Middle As Range Dim FirstOut As String Dim MidOut As String Dim oRow As Integer  Sheets("Sheet2").Select Range("A3").Activate oRow = 2  For Each First In Range(Range("A3"), Range("A3").End(x1Down))  FirstOut = First.Value  For Each Middle In Range(Range("B3"), Range("B3").End(x1Down))  MidOut = Middle.Value  Cells(oRow, "C").Value = FirstOut  Cells(oRow, "D").Value = MidOut  oRow = oRow   1  Next  DoEvents Next Beep  End Sub  

Моя ошибка указывает на эту строку кода

 For Each First In Range(Range("A3"), Range("A3").End(x1Down))  

и говорит: «Ошибка во время выполнения «1004». Метод «Конец» объекта «Диапазон» не удался»

Ответ №1:

Вы хотите получить последнюю строку, а затем использовать ее для создания своей Range , вот так:

 Dim LastRow As Long LastRow = Range("A" amp; Rows.Count).End(xlUp).Row For Each First In Range("A3:A" amp; LastRow)  ' do Something  Next