Excel VBA-无法关闭使用工作簿创建的新工作簿。添加

Excel VBA-无法关闭使用工作簿创建的新工作簿。添加,vba,excel,Vba,Excel,我有以下代码创建一个新工作簿并用一些数据填充它 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 新工作簿可以正常打开。我可以将其最小化,使用菜单等,但无法单击关闭按钮 如果我返回到包含宏的原始工作簿并返回到新工作

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

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:用户读取新工作簿中的信息并决定保存/关闭


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

我认为您需要添加以下行:

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
这在我的excel上运行得很好。我单击“关闭”按钮,它会询问我是否要保存。

在您的代码之后

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

set wb = nothing
这将发布您的新工作簿,您可以使用右上角的“X”关闭


备注:抱歉,我的英文版

在显示您的用户表单时,请确保使用“.Show 0”。

这不是实际的代码,因为它不起作用。无论如何,您不应将
声明为新工作簿
,而应将
声明为工作簿
。是的,已更正。打字错误。那还不是真正的代码。修复后,关闭新工作簿没有问题。您正在使用哪个版本的Excel以及从何处运行代码?这将关闭源工作簿。我的用例是希望用户阅读新工作簿上的信息,然后决定关闭或保存它。但右上角的“关闭”按钮在我返回到原始工作簿,然后返回到新工作簿之前不起作用。
set wb = nothing