Ik heb een VBA macro waarmee ik data uit verschillende sheets verzamel en onder elkaar paste zodat het in een grafiek gezet kan worden. Op de sheet waar alles naar toe gecopypaste wordt zocht ik het einde van de reeks met een simpele selection.end(xldown). Dat geeft een probleem als je reeks nog maar uit 1 waarde bestaat, want dan selecteer hij de rest van de rij (die leeg is). Dat heb ik geprobeerd op te lossen met een simpelen if statement die checked of er nog maar 1 waarde staat.
Maar die IF statement werkt niet:
VBA pakt altijd het stukje achter THEN, ook als CountA("A:A") niet 1 is (ik heb ter controle nog een countA in de worksheet gezet die ik monitor tijdens het runnen van de macro, die verandert wel goed mee). Heeft iemand een idee waarom dit niet werkt?
edit: Ik zie net met een watch in VBA op Application.WorksheetFunction.CountA("A:A") dat die 1 blijft als er extra data in de sheet wordt gepaste, terwijl de COUNTA in de worksheet zelf wel netjes mee update. Wie weet hoe dat komt?
Maar die IF statement werkt niet:
code:
1
2
3
| Worksheets("Trend_control_graphs").Select
If Application.WorksheetFunction.CountA("A:A") = 1 Then r2.Offset(1, 0).PasteSpecial Transpose:=True _
Else r2.End(xlDown).Offset(1, 0).PasteSpecial Transpose:=True |
VBA pakt altijd het stukje achter THEN, ook als CountA("A:A") niet 1 is (ik heb ter controle nog een countA in de worksheet gezet die ik monitor tijdens het runnen van de macro, die verandert wel goed mee). Heeft iemand een idee waarom dit niet werkt?
edit: Ik zie net met een watch in VBA op Application.WorksheetFunction.CountA("A:A") dat die 1 blijft als er extra data in de sheet wordt gepaste, terwijl de COUNTA in de worksheet zelf wel netjes mee update. Wie weet hoe dat komt?
[ Voor 10% gewijzigd door MrAngry op 10-09-2009 12:32 ]
Er is maar één goed systeem en dat is een geluidsysteem - Sef