Jak wypełnić całą kolumnę (niespójną) na podstawie poprzedniej wartości w programie Excel?


1

Powiedzmy, że mam następujące wartości:

A2=a, A5=b, A6=c, A10=d

Zasadniczo chcę uzupełnić poprzednie wartości w następujący sposób:

A2:A4=a,A5=b, A6:A9=c,A10:A99999=d

Próbowałem tego: wstawiłem nową kolumnę po prawej i zrobiłem coś takiego: =IF(A2="",A1,A2) ale to działa tylko dla pierwszych 2 instancji w kolumnie B, ponieważ jest więcej luk i nie zawsze jest taka sama liczba luk. Brakuje mi oczywiście czegoś.

Dzięki.

Odpowiedzi:


1

Nie potrzebujesz do tego VBA, prawie miałeś go z własną formułą. Wystarczy użyć B1 zamiast A1. Zatem B2 zawierałoby:

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

screenshot


0

Wypróbuj to krótkie makro:

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

Makra są bardzo łatwe w instalacji i obsłudze:

  1. ALT-F11 wyświetla okno VBE
  2. ALT-I ALT-M otwiera nowy moduł
  3. wklej rzeczy i zamknij okno VBE

Jeśli zapiszesz skoroszyt, makro zostanie zapisane wraz z nim. Jeśli używasz wersji programu Excel później niż w 2003 r., Musisz ją zapisać plik jako .xlsm, a nie .xlsx

Aby usunąć makro:

  1. wywołaj okno VBE jak powyżej
  2. usuń kod
  3. zamknij okno VBE

Aby użyć makra z programu Excel:

  1. ALT-F8
  2. Wybierz makro
  3. Dotknij RUN

Aby dowiedzieć się więcej o makrach w ogóle, zobacz:

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

i

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

Makra muszą być włączone, aby działało!


Zadziałało idealnie i udało mi się go edytować, aby można go było zastosować do mojego konkretnego przypadku. Tworzenie takich kodów wygląda dość skomplikowanie, ale przyjrzę się twoim sugestiom. Dziękuję Ci bardzo.
Alex
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.