Доброго времени суток. Всем здравия. Пытаясь решить задачу самостоятельно, но из-за скудности своих познаний в vba - не смог. Нашёл на вашем форуме решение для 7-и столбцов. Буду очень благодарен если направите на путь - как сделать так же как в файле, но для 4-х, 5-и, 6-и и 8-и столбцов? Заранее благодарен.
Доброго времени суток. Всем здравия. Пытаясь решить задачу самостоятельно, но из-за скудности своих познаний в vba - не смог. Нашёл на вашем форуме решение для 7-и столбцов. Буду очень благодарен если направите на путь - как сделать так же как в файле, но для 4-х, 5-и, 6-и и 8-и столбцов? Заранее благодарен.Padawan
x = .Range("E2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
[/vba] здесь задается область ячеек листа из которой мы будем брать значения, границы ее следующие - E2(верхний левый угол), L(адрес самой нижней заполненной ячейки в столбце L=11), т.е. L11(нижний правый угол). К примеру если бы мы хотели сравнить значения в 10 столбцах, начиная со столбца A и заканчивая столбцом J, расположенные с 5 по самую нижнюю заполненную строку в столбце J, мы бы записали так: [vba]
Код
x = .Range("A5:J" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
[/vba] в следующей строке кода мы будем задавать сколько повторений мы будем отслеживать (в данном случае до 7): [vba]
Код
ReDim y(1 To UBound(x), 1 To 7)
[/vba] далее мы укажем верхнюю левую ячейку откуда мы будем выводить результат: [vba]
[/vba] другими словами вправо от ячейки Q2 будут выводиться результаты в 7 столбцов, т.к. 7 повторений и ниже записываться строки с результатами для строк из указаного выше диапазона. Вам остается лишь подбирать нужные параметры в этих строках кода для получения нужного Вам результата.
может следующие пояснения помогут: [vba]
Код
x = .Range("E2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
[/vba] здесь задается область ячеек листа из которой мы будем брать значения, границы ее следующие - E2(верхний левый угол), L(адрес самой нижней заполненной ячейки в столбце L=11), т.е. L11(нижний правый угол). К примеру если бы мы хотели сравнить значения в 10 столбцах, начиная со столбца A и заканчивая столбцом J, расположенные с 5 по самую нижнюю заполненную строку в столбце J, мы бы записали так: [vba]
Код
x = .Range("A5:J" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
[/vba] в следующей строке кода мы будем задавать сколько повторений мы будем отслеживать (в данном случае до 7): [vba]
Код
ReDim y(1 To UBound(x), 1 To 7)
[/vba] далее мы укажем верхнюю левую ячейку откуда мы будем выводить результат: [vba]
[/vba] другими словами вправо от ячейки Q2 будут выводиться результаты в 7 столбцов, т.к. 7 повторений и ниже записываться строки с результатами для строк из указаного выше диапазона. Вам остается лишь подбирать нужные параметры в этих строках кода для получения нужного Вам результата.fan-vba
Сообщение отредактировал fan-vba - Воскресенье, 11.02.2018, 13:35