Not all Visual Basic types are permitted for Optional parameters. This error has the following causes and solutions:
For example, you can't have an Optional parameter of user-defined type. You may be able to accomplish your goal using an array of Variant type, since the elements of an array of Variant can store data of different types.
For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).