Что-то вроде:
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:
Макросы очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте материал и закройте окно VBE
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx
Вы должны изменить 3 и 5, чтобы соответствовать вашей фактической структуре данных.
Чтобы удалить макрос:
- откройте окно VBE, как указано выше
- очистить код
- закройте окно VBE
Чтобы использовать макрос из Excel:
- ALT-F8
- Выберите макрос
- Нажмите RUN
Чтобы узнать больше о макросах в целом, смотрите:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
а также
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Макросы должны быть включены, чтобы это работало!