获取工作簿名称公共功能

时间:2014-03-11 17:15:25

标签: excel vba excel-vba

我有下面的代码,我在第一次打开工作簿时尝试捕获工作簿名称。

Public curWorkbook As Workbook

Function GetName()

Set curWorkbook = ActiveWorkbook

End Function

我需要在用于添加数据的用户表单按钮上添加:curWorkbook.activate,以确保在用户同时打开多个文件的情况下将数据添加到正确的工作簿中。

当我运行此代码时,我得到了RT 91:"对象变量或With block变量未设置"错误。不明白为什么?

此外,如果有人可以建议是否更好地将此代码放在" ThisWorkbook"模块或我的" UserForm1"模块。

1 个答案:

答案 0 :(得分:2)

如果要引用打开表单时处于活动状态的工作簿,则可以使用

Public curWorkbook As Workbook

位于表单模块的顶部,并以Activate事件的形式将值设置为ActiveWorkbook。

一旦您引用curWorkbook,您就可以直接引用该工作簿 - 您不需要查看该名称。例如:

curWorkbook.Sheets(1)

相同

Workbooks(curWorkbook.Name).Sheets(1)