Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 关闭工作簿时访问工作表中的子项_Excel_Vba - Fatal编程技术网

Excel 关闭工作簿时访问工作表中的子项

Excel 关闭工作簿时访问工作表中的子项,excel,vba,Excel,Vba,我希望无论何时关闭工作簿,都应该调用工作表(sheet13)中的子项,但如屏幕截图所示,我得到的错误是无效或不合格的引用。 现在我已经试过了 B2_Click !Sheets("sheet13").B2_click !Sheets("Employee Names").B2_click Thisworkbook.Sheets("Employee Names").B2_click 我每次都会出错 您的最后一个示例应该可以运行,因此我将针对您正在调用的方法进行故障排除。在新工

我希望无论何时关闭工作簿,都应该调用工作表(sheet13)中的子项,但如屏幕截图所示,我得到的错误是无效或不合格的引用。 现在我已经试过了

  B2_Click

  !Sheets("sheet13").B2_click

  !Sheets("Employee Names").B2_click

  Thisworkbook.Sheets("Employee Names").B2_click 
我每次都会出错


您的最后一个示例应该可以运行,因此我将针对您正在调用的方法进行故障排除。在新工作簿中尝试此操作:
在此工作簿模块中

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Worksheets("Sheet13").Test
End Sub
和在第13页模块中

Sub Test()
    MsgBox "Closing"
End Sub

如果这样做有效,您就有了一个起点。

首先,其他人已经提到的简单解决方案:
ThisWorkbook.Sheets(“一月”)。某些内容
(字符串区分大小写!)

有多种方法可以引用图纸,工作表的名称也有不同的类型。您必须区分“代码名”和“名称”。 您将很容易找到关于这两者之间差异的更多信息

主要区别在于,
名称可以由用户更改,它是Excel界面底部选项卡上可见的名称。
代码名
只能通过VBA界面进行更改。
创建工作表时,
代码名
名称
通常是相同的(表1等)

要按名称引用图纸,可以使用以下代码:
此工作簿.Sheets(“SomeName”).SomeFunction()

CodeName
可以像这样直接使用:
Sheet2.SomeFunction()
,但我建议先将代码名更改为有意义/有表达力的名称

(Name)
是代码名,
Name
是可见名称

更多关于Bang运算符的信息
可在此处找到:

关于参考表的详细回答:

只需
Sheet13。如果您的B2\u单击是
Public
且不需要参数,请单击
。。。