Miałem nadzieję napisać makro, które wykonuje bardzo powtarzalne zadanie, ale wprowadzenie VBA jest trudniejsze niż oczekiwano. Nauczę się programować makra w Excelu, kiedy mam trochę czasu, ponieważ wydaje się to bardzo przydatne, ale nie mogę spędzić od 5 do 12 godzin w tym tygodniu.Zapisywanie formuły w komórce w zależności od wartości innej komórki
Może ktoś tu może pomóc!
Mam kilka plików excel, które następują ten wzór:
Column C - Column D
--------------------
text | (empty)
number | (empty)
number | (empty)
text | (empty)
number | (empty)
text | (empty)
text | (empty)
number | (empty)
text | (empty)
number | (empty)
Jeżeli tekst i numer alternatywny losowo do kilku tysięcy komórek. Muszę kolumna D trzymać, gdy kolumna C jest liczbą, różnica z poprzedniego numeru, w przeciwnym razie musi pozostać puste:
Column C - Column D
--------------------
text | (empty)
3 | (empty)
14 | (=C3-C2) : 11
text | (empty)
16 | (=C5-C3) : 2
text | (empty)
text | (empty)
21 | (=C8-C5) : 5
22 | (=C9-C8) : 1
Więc algorytm jest:
var previousNumberCell
var i = 1
for all (selected) cells/rows
if (Row(i).column(C) holds number) {
Row(i).column(D).value = "=C"+i+"-"C"+previousNumberCell
previousNumberCell = i;
}
i++
End
Nie dbam jeśli dla pierwszej lub ostatniej komórki nie działa.
Dziękuję bardzo za pomoc lub jeśli możesz wskazać mi, gdzie mogę znaleźć odpowiedź na to pytanie.
EDYCJA: jest to uproszczona wersja problemu, są 2 rzeczy, których nie wiem, jak dobrze z makrami programu Excel: wybierz komórkę i powiedz, czy komórka jest liczbą ... dla rekordu, liczba komórki zostały przekonwertowane z tekstu na format liczbowy.
@Daren spróbuj teraz. –
W jakiej linii? Pracuje do ukończenia po moim zakończeniu. –
Czy wprowadziłeś * wszystkie * zmiany (dodano kilka znaków ampersands, a także usunięto '.Text' z linii ustawiających formuły). –