gpt4 book ai didi

vba - Excel 宏工作簿_BeforeClose 特定工作簿

转载 作者:行者123 更新时间:2023-12-04 21:56:26 25 4
gpt4 key购买 nike

我有两个工作簿,一个我们在(工作簿 A)中输入数据,另一个用于计算(工作簿 B)。

当工作簿 B 关闭时,将运行以下代码以将其重置...

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Range("B2:B4,B6:B8,B10:B12,B14:B16,B18:B20,B22:B24,B26:B28,B30:B32").ClearContents
Range("B2").Select
ActiveWorkbook.Save
End Sub

问题是如果有人在工作簿 B 打开时退出 Excel,但工作簿 A 在前台,您会收到运行时错误“1004”。

如何更改宏以在工作簿 B 上运行上述代码,而不管其他工作簿是打开的还是在前台?

预先感谢您的任何帮助。

最佳答案

您没有提供范围在哪个工作表上的指示。也许,

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Cancel = False
With ThisWorkbook.Worksheets("sheet1")
.Range("B2:B4,B6:B8,B10:B12,B14:B16,B18:B20,B22:B24,B26:B28,B30:B32").ClearContents
.Range("B2").Name = "openHere"
Application.Goto Reference:="openHere"
.Parent.Save
End With
End Sub

您必须激活工作表才能在其上选择一个单元格,但 Application.Goto 可以选择一个命名单元格。我调整了上面的代码以使用工作簿范围定义的名称,然后使用 Application.Goto 那个单元格。

关于vba - Excel 宏工作簿_BeforeClose 特定工作簿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43824163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com