Всем привет, уважаемые гуру экселя! Прошу помощи в решении... Часа три мучаюсь Дано: 1000 строк с набором чисел от 1 до 250, расположенных в строке не по ранжиру в 10 столбцах - в произвольном порядке. сортировать диапазон не получается, т.к. сортирует по первой строке, указанной в пути начала сортировки, перестраивая последовательность следующих столбцов, в соответствии с порядком первой указанной в запросе строки... С макросами знаком только на уровне копи-паст, поэтому сам написать не могу((( Прошу помощи у уважаемой публики в решении задачи - необходимо: упорядочить числа во всех 1000 строках по возрастанию... Заранее благодарен , С уважением, EPLLI
банально - по возрастанию, от наименьшего к наибольшему, чтобы в первом столбце было наименьшее значение строки, а в 10 столбце - наибольшее... добавил в топикстарт пример таблицы...
Мне нужен порядок строк... фильтр по строкам результата не дает. Может я не правильно понимаю алгоритм?! В каком смысле отсортировать отдельно? Столбец? Мне числовой порядок и последовательность в каждой строке важна
Сортировка в одной строке работает правильно и результат соответствует ожиданиям, но... 1000 строк не протянуть((( думал может формат по образцу сработает - так нет, сортировку не копирует
Ігор Гончаренко, спасибо за вариант... После фильтра А-Я допустим строится последовательность 1-го столбца, пункт 3 - сортировать в пределах отмеченного сортирует только первую строку((( варианты по первой строке в моём случае 54... 54 раза сортировать?
ув. EPLLI почему Вы не хотите воспользоваться советом Ігор Гончаренко, макрорекордером сделайте так как он советует, подкорректируйте и будет Вам сортировка...
Указанный метод сортирует по возрастанию столбец при этом искажая текущую последовательность строки... Мне нужна последовательность от меньшего к большему в существующем ряде чисел СТРОК!!! Может я что-то не так понимаю? По столбцу отсортировать не проблема...
сортируются значения в 10-и первых колонках, начиная с строки 1 до первой, в которой пустая ячейка в первой колонке
Код
Sub SortInRow()
Dim r&, ar, c%, s$, i%, var%(9)
r = 1
Do While Not IsEmpty(Cells(r, 1))
s = " " & Cells(r, 1)
For c = 2 To 10
ar = Split(s): p = 1
For i = 1 To UBound(ar)
If Val(ar(i)) >= Cells(r, c) Then
s = Left(s, p - 1) & " " & Cells(r, c) & Right(s, Len(s) - p + 1): Exit For
Else
p = InStr(p + 1, s, " ")
End If
If p = 0 Then s = s & " " & Cells(r, c)
Next
Next
ar = Split(Right(s, Len(s) - 1))
For i = 0 To UBound(ar): var(i) = Val(ar(i)): Next
Cells(r, 1).Resize(1, 10).Value = var: r = r + 1
Application.StatusBar = r
Loop
Application.StatusBar = False
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Хотел воспользоваться Вашим кодом макроса. Как положено вставил этот код в окно Excel и много строк были выделены красным цветом. Что здесь не так? С моей стороны или же в коде проблема? Если он не рабочий, то не могли бы Вы его исправить? Напишите пожалуйста также, что и куда на странице Excel (СТОЛБЕЦ и Строка) вставлять мои данные. Спасибо Вам! С Наступающим Вас Новым Годом!!!
4 ОШИБКИ БЫЛИ ВРОДЕ БЫ ИСПРАВЛЕНЫ А 3 остались, что ещё я могу ещё сделать. Нигде не мог найти информацию в подобном случае. 2 снимка для наглядности! Спасибо!!
Cristal, в красных строках удалите все пробелы, который стоят перед этими строками (там где отступ слева). На самом деле вам кажется, что там просто пробелы, но в действительности там стоят спец. символы, которые похожи на пробелы. А вообще вам надо было делать так. Прямо в редакторе VBA нажать Ctrl+H (H английская буква), поставить курсор в поле Find what:, левой рукой нажать клавишу Alt и держать её, а на дополнительной цифровой клавиатуре (с правой стороны клавиатуры) правой рукой нажать последовательно 0160 и отпустить клавишу Alt. Затем в поле Replace with: поставить курсор и нажать 1 раз на клавишу пробел (т.е. написать 1 пробел в нижнем поле), затем нажать клавишу Replace All
написал: Cristal , в красных строках удалите все пробелы
Как здорово с Вами работать, всё по шагам объяснили. Никогда не догадался бы я. Был на многих сайтах, подобное описание было но такие тонкости не было. Хороший учитель. Всё у меня получилось! Я много пропустил через себя подобные макросы и не стал вникать в их проблеме, думал что это плохой код. Здорово, талант! Спасибо!!!