我希望将数据导出到另一个工作簿。我在关闭询问是否准备好导出数据之前添加了一个msgbox。当我选择是时,数据导出。我遇到的问题是定期使用数据导出到的工作簿。我想在我的代码中添加一个功能,该功能将通知用户由于工作簿在其他地方打开而不会导出数据。如果工作簿已关闭,我希望将数据导出。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Output As String
Output = MsgBox("Are you ready to export the data?", vbYesNo, "Data Export")
If Output = vbYes Then
'Summary Page (APD+MTC)
'APD Premium
Worksheets("SEC 1 (APD)").Range("AJ" & Cells.Rows.Count).End(xlUp).Copy
Workbooks.Open Filename:="S:\US Div\Accounts\Paramount\2017 Data\Summary\2017 Summary - Edit.xlsm"
Workbooks("2017 Summary - Edit.xlsm").Worksheets("Input P").Activate
Range("C18").PasteSpecial Paste:=xlPasteValues, operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWorkbook.Close SaveChanges:=True
End If
End Sub
答案 0 :(得分:0)
我是从这里获得此功能的(不要记得该帖子对unfortnuatley给予了应有的重视。
MACRO
然后在您的Sub中,您可以使用类似这样的名称:
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function