如何从我的个人宏工作簿中使用vba中的函数?

时间:2015-04-08 20:50:38

标签: excel-vba vba excel

我的个人工作簿中有以下功能:

Public Function Get_Rows_Generic_personal(sheet_name As String) As Long
    Get_Rows_Generic = Worksheets(sheet_name).UsedRange.Rows.Count
End Function

如何从另一个项目的模块中调用它?

This thread应该有答案,但链接已经死了。

1 个答案:

答案 0 :(得分:2)

你真的有两个选择:

  1. 您可以使用Application.Run;或
  2. 您可以设置对个人宏工作簿的VBA项目的引用(但您需要从默认的' VBAProject'中更改项目的名称)。一旦有了参考集,就可以直接调用该函数
  3. 要使用Application.Run,您将工作簿和例程名称作为第一个参数传递,然后将该例程所需的任何参数作为Run的附加参数传递。如果例程名称与其父模块相同,或者工作簿中具有多个具有相同名称的例程,则还需要提供模块名称,如果工作簿名称包含空格,则需要将其括起来单引号。所以基本语法是:

    Application.Run "'workbook name.xlsm'!routine_name", parameter1
    

    或:

    Application.Run "'workbook name.xlsm'!module_name.routine_name", parameter1
    

    例如:

    dim lCounter as long
    lCounter = Application.Run("'Personal.xlsb'!Get_Rows_Generic_personal", "some sheet")