您可以使用:=语法将参数按名称分配给子或函数,而不是严格按位置.例如:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load TestRoutine(Y:="TestString",X:=12) End Sub Private Sub TestRoutine(ByVal X As Long,Optional Y As String = "") ' Do something with X and Y here... ' End Sub End Class
请注意,TestRoutine指定X为第一个参数,Y为第二个参数,但Form1_Load中的调用具有相反的顺序,每个参数用以下命令命名为:= operator.
http://msdn.microsoft.com/en-us/library/51wfzyw0.aspx
除了Excel的宏记录器生成的VBA宏之外,我经常看到这种情况非常频繁,而使用它的是很多.