It could be a number of things, I love it how everyone says check the oil, usually that's not the case anymore, never once was the cause of my vtec problems. Theres an easy way to check and see if ur solenoid is working or not, just simply get a wire and connect it to the positive terminal on ur car and put the other end on the wire of the vtec solenoid, u should here a noticeable click, if it clicks, it's good, if it only does it sometimes, take it off and clean it. U should definately pull the codes, it might be vtec does, or it might not. Hope this helps.