文章目录
1. 可选参数Optional
Optional 代表本参数是可选项 =False ; 代表参数若不指定,则默认为False
Function mySumProduct(r As Range, Optional useColumn As Boolean = False)
End Function
Function mySumProduct(r As Range, Optional useColumn As Boolean = False)
Dim i&, j&, s&, k&
s = 0
If useColumn Then
For j = 1 To r.Columns.Count
k = 1
For i = 1 To r.Rows.Count
k = k * r.Cells(i, j)
Next i
s = s + k
Next i
Else
For i = 1 To r.Rows.Count
k = 1
For j = 1 To r.Columns.Count
k = k + r.Cells(i, j)
Next j
s = s + k
Next i
mySumProduct = s
End Function
Sub RegxTQ(Optional r, Optional c As Boolean = True)
Dim myReg As Object, Num
Set myReg = CreateObject("VBSCRIPT.REGEXP")
If IsMissing(r) Then r = Range("A" & ActiveCell.Row)
With myReg
.Pattren = "\d+[.]\d+"
.IgnoreCase = True
.Global = True
If c Then Num = .Execute(r)(0) Else Num = .Execute(r)(1)
End With
RegxTQ = Num
End Sub
2.IsMissing判断参数是否提供,只能判断变体类型
3. 使用 := 可以按参数名传递参数 a:=1,c:=3
Sub callDemo()
Dim x
x = myFun(3)
'x = myFun(3, 4)
'x = myFun(3, 4, 5)
'x = myFun(a:=3, c:=1)
End Sub
Function myFun(a, Optional b = 0, Optional c = 0)
myFun = a + b - c
End Function
4.Msgbox 常用参数
Prompt: 第一参数,字符串
Buttons: 第二参数, Msgbox风格代码(可用常量名称,可用风格代码)
Title:第三参数, 对话框标题栏