Do you really need VBa for this?
In C2
=IF(ISERROR(LOOKUP(99^99,CHOOSE({1;2},"",INDEX($A$1:$A$300,MATCH(TRUE,INDEX(ISNA(MATCH($A$1:$A$300,$C$1:$C1,0)),0),0))))),"",LOOKUP(99^99,CHOOSE({1;2},"",INDEX($A$1:$A$300,MATCH(TRUE,INDEX(ISNA(MATCH($A$1:$A$300,$C$1:$C1,0)),0),0)))))
Drag/ Fill Down until a blank is returned
In D2
=IF(C2>0,COUNTIF(A:A,C2),"")
In E2
=IF(C2>0,SUMIF(A:A,C2,B:B),"")
Drag/ Fill both Down to suit the results in Column C.
N.B.
Your profile indicates you are using 2003, but your sample is clearly 2007 or above.
For 2007 and above use this in C2
=IFERROR(LOOKUP(99^99,CHOOSE({1;2},"",INDEX($A$1:$A$300,MATCH(TRUE,INDEX(ISNA(MATCH($A$1:$A$300,$C$1:$C1,0)),0),0)))),"")
[EDIT]
For Files with 30000 plus rows adjust the lookup range size e.g.
=IFERROR(LOOKUP(99^99,CHOOSE({1;2},"",INDEX($A$1:$A$40000,MATCH(TRUE,INDEX(ISNA(MATCH($A$1:$A$40000,$C$1:$C1,0)),0),0)))),"")
I can't see VBa being any faster, I might be wrong.
Bookmarks