傳參數(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