We were all there at one point in time ;-)
"Argument not optional" means that either a Function or a Subroutine was called that needed you to pass it some variables but didn't.
Here is an example.
Code:
Public Sub TestMe(sName as String)
msgbox sName
End Sub
Sub Main
Call TestMe
End Sub
This would give you an "Argument not optional" because the definition of "TestMe" says that it has one parameter called sName and when you CALLED TestMe you didn't pass it anything. To make it work you would need to do this
Code:
Public Sub TestMe(sName as String)
msgbox sName
End Sub
Sub Main
Call TestMe "Fred"
End Sub
Now it works because the number of parameters the definition of TestMe asks for is the same as you gave it when you called it.
See how you go