Nic70y, если у меня больше столбцов и строк, что мне менять, чтобы ыормула работала? Я попробовала переписать, но строк больше 3х и она не очень работает. В четвертой ячейке она возвращает число из следующего столбца не 333, а 334. Еще вопрос, если массив данных это свереутый список, как указать?
Nic70y, если у меня больше столбцов и строк, что мне менять, чтобы ыормула работала? Я попробовала переписать, но строк больше 3х и она не очень работает. В четвертой ячейке она возвращает число из следующего столбца не 333, а 334. Еще вопрос, если массив данных это свереутый список, как указать?Tata2020
Nic70y, имеется ввиду фильтр, который собирает данные по значению. Получается, что я использую строку 100,284,320 и т. д. Есть возможность, чтобы его не копировать, чтобы он был массивом, без скрытых/свернутых ячеек?
Nic70y, имеется ввиду фильтр, который собирает данные по значению. Получается, что я использую строку 100,284,320 и т. д. Есть возможность, чтобы его не копировать, чтобы он был массивом, без скрытых/свернутых ячеек?Tata2020
Tata2020, предложу Вам макрос, попытался нарисовать его максимально понятно
Sub u_79()
Application.ScreenUpdating = False'отключим обновление экрана
a = "A3:D6"'диапазон из которого берем данные
b = 11'строка в которую вставляем
Rows(b).Clear 'сотрем старые данные 'пройдемся циклом по диапазону (только видимые ячейки) For Each c In Range(a).SpecialCells(xlCellTypeVisible)
d = Cells(b, Columns.Count).End(xlToLeft).Column 'правый заполненный столбец If Cells(b, d).Value <> ""Then d = d + 1'если в столбце есть значения, то + 1 вправо
Cells(b, d) = c.Value 'запишем значение из диапазона Next
Application.ScreenUpdating = True'включим EndSub
апдэйт, не получилось, не то направление... с тем будет сложнее
макрос = обычный* копипаст
Sub u_79()
Application.ScreenUpdating = False'отключим обновление экрана '..............................................
a = "A3:D6"'диапазон из которого берем данные
b = 11'строка в которую вставляем '..............................................
Rows(b).Clear 'сотрем старые данные
c = Range(a).Column '1й столбец
d = Range(a).Columns.Count 'кол-во столбцов
e = Range(a).Row '1я строка
f = Range(a).Rows.Count 'количество строк 'пройдемся циклом по столбцам For i = c To c + d - 1
j = Cells(b, Columns.Count).End(xlToLeft).Column 'правый заполненный столбец If Cells(b, j).Value <> ""Then j = j + 1'если в столбце есть значения, то + 1 вправо
Range(Cells(e, i), Cells(e + f - 1, i)).Copy 'копируем столбец
Cells(b, j).PasteSpecial Paste:=xlPasteValues, Transpose:=True'вставим, транспортируя Next
Application.CutCopyMode = False'очисти буфер обмена
Application.ScreenUpdating = True'включим EndSub
файл 476
Tata2020, предложу Вам макрос, попытался нарисовать его максимально понятно
Sub u_79()
Application.ScreenUpdating = False'отключим обновление экрана
a = "A3:D6"'диапазон из которого берем данные
b = 11'строка в которую вставляем
Rows(b).Clear 'сотрем старые данные 'пройдемся циклом по диапазону (только видимые ячейки) For Each c In Range(a).SpecialCells(xlCellTypeVisible)
d = Cells(b, Columns.Count).End(xlToLeft).Column 'правый заполненный столбец If Cells(b, d).Value <> ""Then d = d + 1'если в столбце есть значения, то + 1 вправо
Cells(b, d) = c.Value 'запишем значение из диапазона Next
Application.ScreenUpdating = True'включим EndSub
апдэйт, не получилось, не то направление... с тем будет сложнее
макрос = обычный* копипаст
Sub u_79()
Application.ScreenUpdating = False'отключим обновление экрана '..............................................
a = "A3:D6"'диапазон из которого берем данные
b = 11'строка в которую вставляем '..............................................
Rows(b).Clear 'сотрем старые данные
c = Range(a).Column '1й столбец
d = Range(a).Columns.Count 'кол-во столбцов
e = Range(a).Row '1я строка
f = Range(a).Rows.Count 'количество строк 'пройдемся циклом по столбцам For i = c To c + d - 1
j = Cells(b, Columns.Count).End(xlToLeft).Column 'правый заполненный столбец If Cells(b, j).Value <> ""Then j = j + 1'если в столбце есть значения, то + 1 вправо
Range(Cells(e, i), Cells(e + f - 1, i)).Copy 'копируем столбец
Cells(b, j).PasteSpecial Paste:=xlPasteValues, Transpose:=True'вставим, транспортируя Next
Application.CutCopyMode = False'очисти буфер обмена
Application.ScreenUpdating = True'включим EndSub