Сдвиньте непустые значения ячеек в сторону ближайших пустых ячеек влево

0

У меня есть много строк, отформатированных так:

COLS : A | B | C | D | E
  01 : 1 |   | 8 | 3 |
  02 :   | 3 | 2 | 4 | 7
  03 : 9 |   | 5 |   | 6

Как я могу сдвинуть значения влево, чтобы у меня не было пустых ячеек? Целью является:

COLS : A | B | C | D | E
  01 : 1 | 8 | 3 |   |
  02 : 3 | 2 | 4 | 7 |
  03 : 9 | 5 | 6 |   | 
Onilol
источник

Ответы:

1

Убедитесь, что у вас выбрана только одна ячейка.

  1. Нажмите F5
  2. Нажмите кнопку «Специально ...»
  3. Выберите «Пробелы» и нажмите «ОК».
  4. Щелкните правой кнопкой мыши и выберите «Удалить ...»
  5. Выберите опцию «Сдвиг ячеек влево» и нажмите ОК

Я использую 2010 год, так что в 2013 году он может немного отличаться, но я надеюсь, что он будет более или менее одинаковым.

blakeoft
источник
0

Что-то вроде:

Sub DataCompactor()
    Dim iRows As Long, iCol As Long
    Dim i As Long, j As Long, r As Range

    iRows = 3
    iCols = 5

    For i = 1 To iRows
        For j = iCols To 1 Step -1
            Set r = Cells(i, j)
            If r.Value = "" Then r.Delete Shift:=xlToLeft
        Next j
    Next i
End Sub

Если клетки действительно пустые, вы можете использовать SpecialCellsи избегать петель.

EDIT # 1:

Макросы очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте материал и закройте окно VBE

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Вы должны изменить 3 и 5, чтобы соответствовать вашей фактической структуре данных.

Чтобы удалить макрос:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы использовать макрос из Excel:

  1. ALT-F8
  2. Выберите макрос
  3. Нажмите RUN

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Макросы должны быть включены, чтобы это работало!

Ученик Гэри
источник
Как мне это использовать? Извините .. Я новичок в этом .. Также это пример .. У меня есть около 4k строк
Onilol
@Onilol Смотрите мой РЕДАКТИРОВАТЬ # 1
Студент Гари
@Onilol Не забудьте исправить iRowsиiCols
Студент Гари
0

Если запрос состоит в том, чтобы переместить ячейки влево вместо удаления ячеек (поскольку необходимо сохранить остальные столбцы вне диапазона), что можно сделать?

В основном в исходном примере это означает, что любой контент, начиная с колонки, я хочу, чтобы они были такими, какие они есть, не перемещаясь влево, что делать?

davfb
источник
1
Добро пожаловать в SuperUser! Ваш пост кажется вопросом, а не ответом. Ваш вопрос получит соответствующее внимание, если вы разместите его как новый вопрос. Вы обнаружите, что у вас будет больше опыта, если вы потратите время на ознакомление с туром Stack Overflow и ознакомитесь с правилами сайта, как спрашивать и как отвечать . Если вы следуете нормам сообщества Stack Overflow и подходите к нему с точки зрения помощи другим, это будет вам полезно.
Рей Джуна