1

Допустим, у меня есть следующие значения:

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, так как есть больше пробелов и есть не всегда одинаковое количество пробелов. Я что-то упускаю, очевидно.

Благодарю.

2 ответа2

1

Вам не нужен VBA для этого, у вас почти была его собственная формула. Вам просто нужно использовать B1 вместо A1. Таким образом, В2 будет содержать:

=IF(A2="",B1,A2)

Скриншот

0

Попробуйте этот короткий макрос:

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

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

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

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

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

  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

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

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