Необходимо формула в столбце Е. Необходимо получить в начале все заполненый ячейки с столбца А, потом с В. Если списак добавиться в А необходимо сместить В ниже. Тоесть необходимо получить сводный список на основании 2 столбцов
Необходимо формула в столбце Е. Необходимо получить в начале все заполненый ячейки с столбца А, потом с В. Если списак добавиться в А необходимо сместить В ниже. Тоесть необходимо получить сводный список на основании 2 столбцовaastg2022
а можно дополнить задачу количеством списков. =@ИНДЕКС(X:AD;СТРОКА()-(СТРОКА()>СЧЁТЗ(X:AD))*СЧЁТЗ(X:AD);8-(СТРОКА()<=СЧЁТЗ(X:AD))) эта формула не работает у меня получается 8 списков по диапазону X:AD
а можно дополнить задачу количеством списков. =@ИНДЕКС(X:AD;СТРОКА()-(СТРОКА()>СЧЁТЗ(X:AD))*СЧЁТЗ(X:AD);8-(СТРОКА()<=СЧЁТЗ(X:AD))) эта формула не работает у меня получается 8 списков по диапазону X:ADaastg2022
да Вы правы 7. Потому что хочу что бы обновляло постоянно без лишних действий типо скрипта. Надо как добавил в список обновило общий список, и еще 1 проблема если в той формуле в В колонке больше значений чем в А, по в переходе между данными А столбца и В ставит 0, если больше значений в А то все норм. это как бы небольшая проблема, но не очень большая
да Вы правы 7. Потому что хочу что бы обновляло постоянно без лишних действий типо скрипта. Надо как добавил в список обновило общий список, и еще 1 проблема если в той формуле в В колонке больше значений чем в А, по в переходе между данными А столбца и В ставит 0, если больше значений в А то все норм. это как бы небольшая проблема, но не очень большаяaastg2022
Sub u_72() Application.ScreenUpdating = False 'отключение обновления экрана u = "e" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "1:" & u & v).Clear 'сотрем старые данные For Each a In Range("a1:b1") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка столбца в который вставляем If d > 1 Then d = d + 1 'очередная строка куда вставляем Range(Cells(1, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub
[/vba]
[vba]
Код
Sub u_72() Application.ScreenUpdating = False 'отключение обновления экрана u = "e" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "1:" & u & v).Clear 'сотрем старые данные For Each a In Range("a1:b1") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка столбца в который вставляем If d > 1 Then d = d + 1 'очередная строка куда вставляем Range(Cells(1, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub
Sub u_722() Application.ScreenUpdating = False 'отключение обновления экрана u = "AX" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "1:" & u & v).Clear 'сотрем старые данные For Each a In Range("X2:AD2") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка столбца в который вставляем If d > 1 Then d = d + 1 'очередная строка куда вставляем Range(Cells(1, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub Этот код копирует все правельно, а если мне надо без 1 строки, тоесть начиная со 2 строки?
Sub u_722() Application.ScreenUpdating = False 'отключение обновления экрана u = "AX" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "1:" & u & v).Clear 'сотрем старые данные For Each a In Range("X2:AD2") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка столбца в который вставляем If d > 1 Then d = d + 1 'очередная строка куда вставляем Range(Cells(1, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub Этот код копирует все правельно, а если мне надо без 1 строки, тоесть начиная со 2 строки?aastg2022
Sub u_722() Application.ScreenUpdating = False 'отключение обновления экрана u = "AX" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "2:" & u & v).Clear 'сотрем старые данные For Each a In Range("X2:AD2") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row + 1 'очередная строка куда вставляем Range(Cells(2, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub
[/vba]
[vba]
Код
Sub u_722() Application.ScreenUpdating = False 'отключение обновления экрана u = "AX" 'столбец в который вставляем v = Cells(Rows.Count, u).End(xlUp).Row 'нижняя строка Range(u & "2:" & u & v).Clear 'сотрем старые данные For Each a In Range("X2:AD2") 'вместо a1:b1 вписать нужные столбцы из которых копируем b = a.Column 'очедной столбец c = Cells(Rows.Count, b).End(xlUp).Row 'нижняя строка очередного столбца d = Cells(Rows.Count, u).End(xlUp).Row + 1 'очередная строка куда вставляем Range(Cells(2, b), Cells(c, b)).Copy Range(u & d) 'копи-паст Next Application.ScreenUpdating = True 'включение обновления экрана End Sub