Добрый день. Проблема в том что у меня 2000 строк которые нужно транспортировать в три столбца. 1.Если строка полностью пустая то не нужно транспортировать 2. если одна из ячеек в строке не пустая то необходимо транспортировать в три столбца. 3.если после транспортирования в трех столбцах появилась пустая строка но не нужно ее показывать.(
Sub etst()
Dim lastrow As Long 'объявляем переменную
For j = 1 To 2 'тут кол-во строк откуда тянем (в примере "B5:B6" 2 строки). Объявление цикла
For i = 2 To 8 ' столбцы исх табл (все 3 таблицы у Вас содержат по 8 столбцов) Объявление цикла
If Cells(j + 4, i) <> "" Or Cells(j + 4, i + 8) <> "" Or Cells(j + 4, i + 16) <> "" Then 'смотрим чтобы хоть в 1 из 3 таблиц было значение
lastrow = Cells(Rows.Count, 1).End(xlUp).Row 'ищем последнюю заполненную строку
Cells(lastrow + 1, 1) = Cells(lastrow, 1).Value + 1 'проставляем порядковый номер
Cells(lastrow + 1, 2) = Cells(j + 4, i) 'переносим значение из 1 таблицы, например C5 (j+4 означает 5 строку)
Cells(lastrow + 1, 3) = Cells(j + 4, i + 8) 'переносим значение из 2 таблицы, например K5 (i+8 означает столбец K)
Cells(lastrow + 1, 4) = Cells(j + 4, i + 16)'переносим значение из 3 таблицы, например S5 (i+16 означает столбец S)
End If
Next i, j
End Sub
Но вот как ее заставить работать на 2 строку я не знаю. Через сводную я погорячился так дольше будет. Сейчас скрипт комментариями дополню может так легче Вам будет
У Вас сколько столбцов? Посчитайте и вместо 7 везде вставьте количество столбцов. Более ничего менять не нужно. Ну и диапазон ИНДЕКСА исправьте на текущий.
27 столбцов. я менял 7 на 27. сначала все четко считает и на половине снова начинает считать сначала. Диапазон соответственно изменил. =ИНДЕКС(ВСЕ!$E$3:$AE$99;ОСТАТ((СТРОКА(A784)-1)/27;27)+1;ОСТАТ((СТРОКА(A784)-1);27)+1)
Владимир добрый день. А можно ль сделать так что б количество столбцов "27", было переменным т.е если в строке "5" с "10 "по "27" столбец пустая ячейка то переходить на следующую строку?
Владимир добрый день. А можно ль сделать так что б количество столбцов "27", было переменным т.е если в строке "5" с "10 "по "27" столбец пустая ячейка то переходить на следующую строку?
Добрый. По данной формуле, нет. Это формула создаёт цикл. Если комп виснет, то не от этой формулы, т.к она очень проста. Нужно проверить листы на псевдопустые ячейки, наличие "картинок", форматирования и пр мусора. Если количество строк зашкаливает за сотню тысяч, то лучше макрос использовать.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."