Conceptually it means that an invalid pointer has been passed. SO I'm going to have to assume that you are not entirely clear what a pointer might be.
In simple terms, all VB variables are actually pointers (i.e. the actual memory address) to where the actual data is (whether that data be a Long, a Double, a User Defined Type, an Object, or whatever). This is all hidden away from you in VB, and when you try an examine a variable you actually get given the contents of the memory location that the variable points to. VB does provide some hidden methods for showing the actual pointers; try looking up ObjPtr, StrPtr and VarPtr in VB's help files
So the error message means that, for some unspecified reason, a variable that has been passed (i.e. a pointer) is invalid (it may be, for example, that it is pointing to data of the wrong type, or that the memory it is pointing to has been freed and contains garbage or because a null pointer - one that doesn't point at anything - has been passed or ... well, many reasons) The reason the error message conytins little information is that whilst it is realtively easy to check whether the data pointed to is correct or not, it is difficult to detetmine at that point why it is wrong.
(having said all that, one of the main reasons that it crops up in VB programs is when VB tries to pass an Object whose value is Nothing to methods and properties that are are expecting it to be set to something ...)