Всем привет!
Есть у меня такой макрос (см. вложение). Около года назад мне его помог сделать на этом форуме один хороший человек.
Проблема в том, что использую его в работе с большим количеством строк. Бывает, что в итоге финальная таблица больше миллиона строк, поэтому появлялась ошибка.
Коллега по работе помог мне.
Ограничил мне количество строк 1000, кажется в этой строке:
For i = 2 To Sheets("Исходник 2").Range("A" & Rows.Count).End(xlUp).Row
Файл был потерян, коллега уволился, а я воспроизвести не могу(((
Было как-то так:
For i = 2 To 1000 Sheets("Исходник 2").Range("A" & Rows.Count).End(xlUp).Row
Но сейчас не работает, что-то не так я делаю.
Потом я делала:
For i = 1001 To 2000 Sheets("Исходник 2").Range("A" & Rows.Count).End(xlUp).Row
И т.д.
И таким образом обрабатывала всю информацию.
Помогите, пожалуйста, внести правки.
Спасибо!
Трудно понять логику макроса, т.к. он совсем не обрабатывает повторяющиеся значения, но исходя из поста, для ограничения цикла используйте только For i = 2 To 1000
или For i = 1001 To 2000
т.к. Sheets("Исходник 2").Range("A" & Rows.Count).End(xlUp).Row
возвращает номер последней строки с данными
И чтоб
Цитата: Оксана Соколова от 24.10.2016, 20:51.. в итоге финальная таблица больше миллиона строк...
нужно чтоб в исходных таблицах в сумме было больше миллиона, а это невозможно в xls, где строк на листе 65536. Может Вы пытаетесь обработать файлы xlsx? Попробуйте так:
Sub www()
Dim i&, j&, sh As Worksheet
sz = 2: Set sh = Sheets("Результат")
For i = 2 To Sheets("Исходник 2").Range("A" & Rows.Count).End(xlUp).Row
For j = 2 To Sheets("Исходник 1").Range("A" & Rows.Count).End(xlUp).Row
If Sheets("Исходник 1").Cells(j, 1) = Sheets("Исходник 2").Cells(i, 1) Then
sh.Cells(sz, 1) = Sheets("Исходник 2").Cells(i, 1)
sh.Cells(sz, 2) = Sheets("Исходник 2").Cells(i, 2)
sh.Cells(sz, 3) = Sheets("Исходник 1").Cells(j, 2)
sz = sz + 1
If sz > 65535 Then' если все же xlsx то 1000000
Worksheets.Add
Set sh = ActiveSheet
sz = 2
sh.[a1:c1] = Array("Город", "Код Уб", "Код ТТ")
End If
End If
Next j
Next i
End Sub
установить power query