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

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 |   | 

3 ответа3

1

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

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

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

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

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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .