傳參數(shù)隨心所欲不逾矩 消息框暗藏高招有神通
主要內(nèi)容:
一鸳慈、Merge使用的區(qū)別
Sub 合并單元格的區(qū)別()
? Range("B5:D9").Merge? '合并所有單元格
? ? Range("B10:D13").Merge True? ‘按行合并
End Sub
二嗤谚、可選參數(shù)Optional
(1)按行求積坠非,按列求和程序
Function Asum(r As Range)
? ? Dim a As Long, b As Long, c As Long, s As Long
? ? s = 0
? ? For a = 1 To r.Rows.Count
? ? c = 1
? ? ? ? For b = 1 To r.Columns.Count
? ? ? c = c * r.Cells(a, b)
? ? ? Next b
? ? ? s = s + c
? ? Next a
? ? Asum = s
End Function
(2)按行按列選擇
Function CaSum(r As Range, useColumn As Boolean)
? ? Dim a&, b&, s&, k&
? ? s = 0
? ? If useColumn Then
? ? ? ? For b = 1 To r.Columns.Count
? ? ? ? k = 1
? ? ? ? ? ? For a = 1 To r.Rows.Count
? ? ? ? ? ? k = k * r.Cells(a, b)
? ? ? ? ? ? Next a
? ? ? ? ? ? s = s + k
? ? ? ? Next b
? ? Else
? ? ? ? For a = 1 To r.Rows.Count
? ? ? ? k = 1
? ? ? ? ? ? For b = 1 To r.Columns.Count
? ? ? ? ? ? k = k * r.Cells(a, b)
? ? ? ? ? ? Next b
? ? ? ? ? ? s = s + k
? ? ? ? Next
? ? End If
? ? CaSum = s
End Function
提示1:以上程序必須在CaSum函數(shù)的第二個參數(shù)輸入True或者False
提示2:將第二個參數(shù)改為Option useColumn As Boolean =False.Optional是VBA中的關(guān)鍵字块请,代表可選項挎袜,允許忽略只厘。把它放在一個參數(shù)前面乘综,這個參數(shù)就變成了可選項符隙。
提示3:False代表默認(rèn)值趴捅,意思是在輸入時,若未提供參數(shù)霹疫,則默認(rèn)為False拱绑。
三、Ismissing(a)
(1)判斷一個可選參數(shù)a是否被提供丽蝎,如果沒有提供猎拨,則返回True(即Missing);否則返回False屠阻。
(2)要求:該可選參數(shù)必須是變體型红省,且不能有默認(rèn)值。
Sub calldemo()
? ? Dim x, y
? ? x = myFunction(7)
? ? y = myFunction(1, 3)
? ? MsgBox "x是" & x & ",y是" & y
End Sub
Function myFunction(a, Optional b)
? ? If IsMissing(b) Then
? ? ? ? myFunction = a * 2
? ? Else
? ? ? ? myFunction = (a + b) * b
? ? End If
End Function
四国觉。傳遞參數(shù)的方法:
使用:=可以按參數(shù)名稱傳遞參數(shù)吧恃,比如x=myFunction(a:=3,c:=5)
而且可以不必要按照順序去傳遞參數(shù)。
Sub calld()
? ? Dim x
? ? x = myfun(3)
? ? x = myfun(3, 4)
? ? x = myfun(3, 4, 5)
? ? x = myfun(3, , 5)
End Sub
? ? Function myfun(a, Optional b = 0, Optional c = 0)
? ? ? ? myfun = a + b - c
? ? End Function