#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