如何将工作簿名称传递给子例程?

时间:2015-04-13 03:53:38

标签: excel vba function parameters

我第一周与VBA合作,请保持温和。 我继承了这个代码,所以双重打击。 主Sub调用公共函数读取文件,将Workbook和Object变量作为参数传递。 我需要添加一个工作簿来用作查找。我已经使用Application.GetOpenFilename来提示用户使用浏览窗口来选择这个新工作簿,但是将工作簿变量作为参数添加到Function调用似乎并未传递工作簿名称。 MsgBox确认函数内的变量是“无”。 我这样做是正确的吗?

1 个答案:

答案 0 :(得分:0)

如果您发布代码会很棒。但无论如何要试试这个。

    Option Explicit
    Dim wbk As String
    Dim WB1 As Workbook

    Sub main()
    wbk = Application.GetOpenFilename("All Files (*.*), *.*")
    getname (wbk)
    End Sub

    Function getname(WkBk As String)
    Set WB1 = Workbooks.Open(WkBk)
    MsgBox WB1.Name
    End Function

此代码将打开所选工作簿和工作簿名称的消息框。

希望这会对你有所帮助。