全民一起VBA提高篇-第十八回

傳參數(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ù)的第二個(gè)參數(shù)輸入True或者False

提示2:將第二個(gè)參數(shù)改為Option useColumn As Boolean =False.Optional是VBA中的關(guān)鍵字,代表可選項(xiàng),允許忽略。把它放在一個(gè)參數(shù)前面,這個(gè)參數(shù)就變成了可選項(xiàng)。

提示3:False代表默認(rèn)值,意思是在輸入時(shí),若未提供參數(shù),則默認(rèn)為False。

三、Ismissing(a)

(1)判斷一個(gè)可選參數(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容