Excel VBA - 无法关闭使用 Workbook.Add 创建的新工作簿



我有以下代码可以创建一个新工作簿并用一些数据填充它。

Dim wb as Workbook
Set wb = Workbooks.Add
wb.Range("A1") = "Dummy Text" 'Some code that populates data
wb.Activate 'wb.Activate or ThisWorkbook.Activate has no effect

新工作簿打开正常。我能够最小化它,使用菜单等,但无法单击关闭按钮。

如果我返回到具有宏的原始工作簿并返回到新工作簿,则可以关闭。

如何克服这个问题?不幸的是,出于想法。

我的首选用例

步骤 1:用户单击按钮 -> 将打开包含数据的新工作簿

步骤2:用户读取新工作簿中的信息并决定保存/关闭

但是,在用户返回到原始工作簿并再次转到新工作簿之前,新工作簿中的关闭按钮将不起作用。

在你的

代码之后

Dim wb as Workbook
Set wb = Workbooks.Add
wb.Range("A1") = "Dummy Text"

插入

set wb = nothing

这将释放您的新工作簿,您可以使用右上角的"X"关闭。

PS:对不起我的英语

Sub Button1_Click()
Dim wb As Workbook
Set wb = Workbooks.Add
wb.Sheets("Sheet1").Range("A1") = "Dummy Text" 'Some code that populates data
wb.Activate 'wb.Activate or ThisWorkbook.Activate has no effect
End Sub

这在我的 excel 上工作得很好。我单击关闭按钮,它询问我是否要保存。

我认为您需要添加这一行:

Workbooks("source").Close

如果要关闭当前工作簿,请尝试以下操作:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If ActiveCell.Value = "CLOSE" Then
        ThisWorkbook.Saved = True
        ThisWorkbook.Close
    End If
End Sub

显示用户表单时,请确保使用".显示 0"。

最新更新