• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

range bepalen met "lastRow"

Status
Niet open voor verdere reacties.

R0bert

Gebruiker
Lid geworden
10 apr 2016
Berichten
48
Als een rij een steeds wisselende lengte heeft, kan ik voor het bepalen van een gemiddelde niet een range als A1:A23 opgeven, want als er een rij bij komt, mis ik die gegevens.
Op internet heb ik gevonden dat je de laatste rij kan vinden met:
finalRow = Cells(Rows.Count, 1).End(xlUp).Row

Ik heb het geprobeerd met:
Range("D9")select
Value = WorksheetFunction.Average(Range(A1 : finalRow))

maar dan krijg ik een foutmelding

Kan iemand mij vertellen hoe ik de opdracht moet schrijven om het gemiddelde van A1 t/m de laatste rij in cel D9 kan krijgen??

Bij voorbaat dank!
 
Gebruik geen Select.
Daar mist trouwens ook een punt.
Gebruik geen gereserveerde woorden zoals Value als naam van een variabele.
In Range(A1 : finalrow) horen geen spaties.
Ook mist daar de kolomletter.

Tevens, als je zegt een foutmelding te krijgen, zet deze er dan ook bij.
 
Laatst bewerkt:
Om je toch een beetje op weg te helpen:
Code:
Range("D9") = WorksheetFunction.Average(Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row))

Maar omdat je maar halve code plaatst is me niet duidelijk of dat ook je bedoeling is.
 
Ja, edmoor, dat was precies de bedoeling, bedankt!
Ik begrijp het nog niet helemaal, maar ik probeer het "hoe en waarom" nog wel te achterhalen. In ieder geval werkt het alvast!
 
Code:
cells(9,4)=application.average(columns(1))


of

Code:
[D9]=[average(A:A)]

wat je natuurlijk ook fraai als Excelfomule in D9 kunt zetten; daar heb je juist liever geen VBA voor nodig.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan