Допустим, у меня есть следующие значения:
A2=a, A5=b, A6=c, A10=d
По сути, я хочу полностью свести предыдущие значения к следующему:
A2:A4=a,A5=b, A6:A9=c,A10:A99999=d
Я попробовал это: я вставил новый столбец справа и сделал что-то вроде этого: =IF(A2="",A1,A2)
но это работает только для первых 2 экземпляров в столбце B, поскольку там больше пробелов и их не всегда одинаковое количество. Я, очевидно, что-то упускаю.
Спасибо.
решение1
решение2
Попробуйте этот короткий макрос:
Sub FillDown()
Dim rng As Range, r As Range
Set rng = Range("A2:A99999")
Application.ScreenUpdating = False
For Each r In rng
v = r.Value
If v = "" Then r.Value = r.Offset(-1, 0)
Next r
Application.ScreenUpdating = True
End Sub
Макросы очень просты в установке и использовании:
- ALT-F11 открывает окно VBE
- ALT-I ALT-M открывает новый модуль
- вставьте текст и закройте окно VBE
Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel позже 2003, вы должны сохранить файл как .xlsm, а не .xlsx
Чтобы удалить макрос:
- откройте окно VBE, как указано выше
- очистить код
- закрыть окно VBE
Чтобы использовать макрос из Excel:
- АЛЬТ-Ф8
- Выберите макрос
- Нажмите ПУСК
Чтобы узнать больше о макросах в целом, см.:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
и
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
Для работы этого метода должны быть включены макросы!