首页 > 解决方案 > 使用文件名之间有空格的工作簿引用 workbooks()

问题描述

我使用同时打开的多个工作簿来跟踪我写的文章。两个工作簿都有各自的宏和编辑其数据的用户表单,其中一个具有无模式的用户表单。如何确保无模式用户窗体在正确的工作簿上进行更改。我试过引用 Workbooks("Published Articles Tracker v3.0.xlsm").Sheets(Sheet2).Activate,但它总是返回错误。我想继续使用 workbooks() 方法引用我的工作簿,但我认为问题在于我的文件名的格式,但如果可能的话,我想保持这种方式。有什么想法吗?

标签: vbaexcel

解决方案


使用变量来指向您的工作簿和工作表 - 如果必须更改名称,它会更快、更易于阅读,并且更改的痛苦更少。

Global ThatWorkbook as Workbook
'NB ThisWorkbook is predefined by VB to refer to whichever 
 'workbook is hosting the code


Sub Disambiguate()
dim wb as workbook

for each wb in workbooks
    if wb.name =""Published Articles Tracker v3.0.xlsm" then
         Set ThatWorkbook = wb
         Exit For
     End If
 Next ws
 If ThatWorkbook is Nothing then 
    MSGBOX "File Not Found",vbOkOnly,"No Workbook"
 End IF
 End sub

推荐阅读