VBA:跨模块调用 Sub/Function

【笔记】在模块2中,调用模块1中的函数selectBooks

模块2:跨模块调用模块1函数 selectBooks
-----------------------------------------------------------------------
Sub bookIn()
  Dim v As Object
  Set v = 模块1.selectBooks 'v 用于接收跨模块函数的返回值
End Sub

 模块1:
1. 若想让调用者接收到函数的返回值,被调用的“跨模块函数”必须抛出返回值;
2. 若不抛出返回值,函数可被调用,但调用者无法接收到返回值,适用于无需返回值的操作
-----------------------------------------------------------------------
Public Function selectBooks() As Object
  Dim bk, dic_bk as Object
  Set dic_bk = CreateObject("Scripting.Dictionary")
  With Application.FileDialog(msoFileDialogOpen)
    .AllowMultiSelect = True
    If .Show = -1 Then '0:未选文件
      For Each bk In .SelectedItems
        arr = Split(bk, "\"): n = UBound(arr): arr = Split(arr(n), "."): bkName = arr(0)
        dic_bk.Add (bk), bkName
      Next: Set selectBooks = dic_bk '抛出函数的返回值(可供跨模块/甚至跨文件调用)
    End If
  End With
End Function

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值