美文网首页
全民一起VBA提高篇-第十八回

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

作者: 凯凯凯王 | 来源:发表于2020-04-08 14:52 被阅读0次

传参数随心所欲不逾矩 消息框暗藏高招有神通

主要内容:

一、Merge使用的区别

Sub 合并单元格的区别()

  Range("B5:D9").Merge  '合并所有单元格

    Range("B10:D13").Merge True  ‘按行合并

End Sub

二、可选参数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函数的第二个参数输入True或者False

提示2:将第二个参数改为Option useColumn As Boolean =False.Optional是VBA中的关键字,代表可选项,允许忽略。把它放在一个参数前面,这个参数就变成了可选项。

提示3:False代表默认值,意思是在输入时,若未提供参数,则默认为False。

三、Ismissing(a)

(1)判断一个可选参数a是否被提供,如果没有提供,则返回True(即Missing);否则返回False。

(2)要求:该可选参数必须是变体型,且不能有默认值。

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

四。传递参数的方法:

使用:=可以按参数名称传递参数,比如x=myFunction(a:=3,c:=5)

而且可以不必要按照顺序去传递参数。

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

相关文章

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

    传参数随心所欲不逾矩 消息框暗藏高招有神通 主要内容: 一、Merge使用的区别 Sub 合并单元格的区别()...

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

    一眼看出Range大小 快速定为数据末行 主要内容: 一、怎样得到一个Range在表格中的位置 1.与Rang...

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

    传递Range提升自定义函数 巧用属性分辨公式型内容 主要内容: 一、使用UBound,LBound。代替固定...

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

    表格联手二维数组 批量修改一骑绝尘 主要内容: 一、数组 1.概念:Dim 数组名(最大行,最大列) AS 类型 ...

  • 全民一起VBA提高篇-第三回

    莫让电脑猜大小 巧用符号标类型 主要内容: 一、测试举例,了解计算机运行规律,一下程序提醒已出错误,查出原因 Su...

  • 全民一起VBA提高篇-第四回

    日期类型穿梭岁月 时间函数算尽光阴 主要内容: 一、Date函数,存放表示时间的数据,可以精确到秒 举例日期函数...

  • 全民一起VBA提高篇-第五回

    逻辑终将分真伪 判断实则看是非 主要内容: 1.逻辑类型数据Boolen。 2.有两个取值,True 或者Fals...

  • 全民一起VBA提高篇-第二回

    变体终非万全策 数字要分长短型 主要内容: 一、当两边都是字符串是,“+”就相当于“&”。 二、自动类型转换 当把...

  • 全民一起VBA提高篇-第一回

    变体能容 高矮胖瘦皆适用 数据细分 大小黑白各不同 主要内容: 一、不同类型的变量不仅占用内存大小不同,运算规则和...

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

    同是藏身文件夹 相逢何必问姓名 主要内容 一、关于文本编号 1.正在打开的文件,必须有唯一的编号; 2.文件关闭后...

网友评论

      本文标题:全民一起VBA提高篇-第十八回

      本文链接:https://www.haomeiwen.com/subject/ywstmhtx.html