Страницы: 1
RSS
Сместить ячейки с записями влево в крайнее положение, если есть пустые ячейки слева., Макросом
 
Здраствуйте уважаемые форумчане! Нужна очень Ваша помощь!

ДАНО: Таблица со значениями в в столбцах с записями и пустыми ячейками. На рисунке1.(цвета только для наглядности)



ЗАДАЧА: Сместить все записи влево если слева есть пустые ячейки, по принципу "как в игре тетрис". Все заполненные ячейки должны "упасть" влево если есть свободное место. На Рисунке 2, Рисунке 3.
Нужно сделать макросом т.к. таблица очень большая на тисячи рядов и сотни столбцов, и таблиц таких много.



РЕЗУЛЬТАТ: Все заполненные записи должны оказатся по максимуму слева. (цвета только для наглядности)



Прикрепляю файл ПРИМЕР.
Незнаю возможно ли такое вообще решить.
Но ОЧЕНЬ буду благодарен знающим людям за помощь.
 
Здравствуйте. Вот пробуйте. Вариант Tetris3 считаю самым оптимальным.
Скрытый текст
Изменено: DANIKOLA - 14.07.2020 19:40:05 (Улучшен макрос)
 
yuraok, учитывая, что
Цитата
yuraok написал:
таблица очень большая на тисячи рядов и сотни столбцов,
макрос, предложенный выше, скорее всего будет тормозить...
попробуйте такой вариант (макрос в модуле листа)
Код
Sub Delete_Cells()
    Dim Arr(), Res(), i&, j&, k&, a&, b&
    Arr = UsedRange.Value
    a = UBound(Arr)
    b = UBound(Arr, 2)
    ReDim Res(1 To a, 1 To b)
    For i = 1 To a
        k = 1
        For j = 1 To b
            If Arr(i, j) <> "" Then
                Res(i, k) = Arr(i, j)
                k = k + 1
            End If
        Next j
    Next i
    Application.ScreenUpdating = False
    Range("A1").Resize(a, b).Value = Res
    Application.ScreenUpdating = True
End Sub
 
Цитата
макрос, предложенный выше, скорее всего будет тормозить...
С циклом да, я не против, а как вам второй вариант? Tetris2
 
Цитата
DANIKOLA написал:
Tetris2
не знаю, нужно пробовать, сравнивать...
Я этот вариант не видел, когда свой писал, но о нем думал...
 
Сократим тетриса.
Код
Sub Миша_с_возвращением_вскл_зн()
UsedRange.SpecialCells(4).Delete Shift:=xlToLeft
End Sub
 
Цитата
k61 написал:
Сократим тетриса.
Используй то, что под рукою, и не ищи себе другое!  :D
По вопросам из тем форума, личку не читаю.
 
Спасибо БОЛЬШОЕ всем за ответы. Иду смотреть.
Страницы: 1
Наверх