Czy zastosować formułę do całej kolumny, ponieważ liczba wierszy zmienia się z pliku źródłowego?


0

Mam połączenie ze źródłem pliku tekstowego, więc arkusz programu Excel jest aktualizowany automatycznie. Dlatego liczba wierszy stale rośnie przy każdej aktualizacji. Jak zastosować formułę do całej kolumny?

Dwukrotne kliknięcie pola w dolnym rogu komórki powoduje zastosowanie formuły do ​​poprzednich komórek przed odświeżeniem połączenia, a nowo dodane wiersze u dołu nie otrzymują formuły.


Możesz wypełnić całą kolumnę formułą i sprawić, by nic nie wyświetlała, jeśli wiersz, w którym się znajduje, jest pusty. W przeciwnym razie, jeśli nie jest to opcja, powiedziałbym, że potrzebujesz VBA.
Jerry

Myślę, że już próbował czego wymienić: =IF(A1<>"",C1/B1,""). Niesamowicie powolne, gdy źródło aktualizuje się i kończy wypełnianie komórek po ostatnim wierszu znakiem „#REF”. Nie wiem jeszcze, jak korzystać z VBA.
Marlon

Ok ... Nie znam wystarczająco VBA, aby pomóc ci w rozwiązaniu tego problemu. Mam nadzieję, że ktoś inny będzie w stanie Ci pomóc :)
Jerry,

Myślę, że musisz udostępnić kod VBa
Dave

Odpowiedzi:


0

Twoje pytanie nie określa, jaką formułę chcesz zastosować, i mówi, w jaki sposób możesz zastosować formułę dla całej kolumny, gdy liczba wierszy jest nieznana.

Kilka pomysłów

Range("A:A") 'this grabs the entire range

Więc możesz zrobić

Dim rng As Range
Dim row As Range
Dim cell As Range

Set rng = Range("A1:C2")

For Each row In rng.Rows
  For Each cell in row.Cells
    'logic
  Next cell
Next row

Lub możesz przejść do następnego wiersza, aż następny wiersz będzie pusty

dim row as integer
row = 1

do while (Range("A" & row).value<>"")
    'logic
    row= row + 1
loop

Twoje pytanie wskazuje również, że zajmuje cały arkusz tylko po pierwszym załadowaniu, a po naciśnięciu przycisku nie stosuje go do nowych wpisów. Oznacza to, że nie zlicza poprawnie całkowitej liczby wierszy, więc możesz być w stanie użyć czegoś takiego jak powyżej, aby mieć pewność, że zawsze iteruje przez wszystkie wiersze.

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.