VBA-名为“”的文档已打开
我在Excel中编写了一个宏,并将其指定给工作簿中的一个按钮。按下时,它会向用户请求文件,打开该文件并将内容复制到原始工作簿的sheet2中,然后以新名称保存原始工作簿。然后在工作表上创建一个新按钮以运行另一个子例程。按下按钮时,会弹出一个窗口,显示名为document name的文档已打开。有没有办法解决这个问题?我假设发生这种情况是因为我正在用新名称保存原始工作簿VBA-名为“”的文档已打开,vba,excel,Vba,Excel,我在Excel中编写了一个宏,并将其指定给工作簿中的一个按钮。按下时,它会向用户请求文件,打开该文件并将内容复制到原始工作簿的sheet2中,然后以新名称保存原始工作簿。然后在工作表上创建一个新按钮以运行另一个子例程。按下按钮时,会弹出一个窗口,显示名为document name的文档已打开。有没有办法解决这个问题?我假设发生这种情况是因为我正在用新名称保存原始工作簿 Sub openFile() Dim tempWB As Object, btn As Button, desktopPath
Sub openFile()
Dim tempWB As Object, btn As Button, desktopPath As String
fileToOpen = Application.GetOpenFilename(Title:="Select transaction history export:")
If fileToOpen <> False Then
Set tempWB = Workbooks.Open(Filename:=fileToOpen)
End If
If fileToOpen = False Then
End
End If
ActiveSheet.Cells.Copy
Workbooks("Test.xlsm").Sheets("Sheet2").Activate
ActiveSheet.Cells.ClearContents
ActiveSheet.Cells(1, 1).Select
ActiveSheet.Paste
tempWB.Close
Set btn = ActiveSheet.Buttons.Add(650, 50, 100, 40)
With btn
.OnAction = "action"
End With
desktopPath = (MacScript("(path to desktop from user domain as string)") & ":")
ActiveWorkbook.SaveAs Filename:=(desktopPath & "Result" & VBA.format(Date, "mm/dd/yy") & ".xlsm")
End Sub
Sub action()
Range("A1:B1").Font.Size = 14
End Sub
您是否仔细查看了命名新文件的值?我建议将tempWB.Close更改为tempWB.Close:Set tempWB=Nothing。这将释放变量到窗口句柄的链接。