没有对话框的工作簿保存弹出要求另存为

时间:2015-11-20 14:55:44

标签: excel vba

我有一个由用户填写的工作表(QT),当用户关闭工作簿时,UserForm会在关闭之前出现。然后,用户选择一些内容并运行代码。代码将数据插入另一个工作簿(Log)。我的问题是其他工作簿(Log)询问用户是否要保存。我需要跳过这一步。我试过了Application.DisplayAlerts = False,但它并没有阻止它弹出。

Private Sub OKBTN_Click()
Dim TOTALFOB As String
Dim TOTALWC As String
Dim MFG As String
Dim JOB As String
Dim XL As Excel.Application
Dim wbk As Excel.Workbook
Dim INWBK As Excel.Workbook
Dim TOTMFG As Variant
Dim TOTWC As Variant
Dim visitdate As Date
Dim visitdate_text As String


TOTALFOB = RefEdit1
TOTALWC = RefEdit2
Set XL = CreateObject("Excel.Application")
Set INWBK = ActiveWorkbook
Set wbk = XL.Workbooks.Open("C:\QUOTE REQUEST LOG 2015.xlsm")

If YESBTN.Value = True Then TOTMFG = INWBK.Sheets("QTR").Range(TOTALFOB).Value
If YESBTN.Value = True Then TOTWC = INWBK.Sheets("QTR").Range(TOTALWC).Value

If NOBTN.Value = True Then TOTMFG = "N/A"
If NOBTN.Value = True Then TOTWC = "N/A"

MFG = INWBK.Sheets("QTR").Range("B7").Value
JOB = INWBK.Sheets("QTR").Range("H13").Value
visitdate = INWBK.Sheets("QTR").Range("H9").Value
visitdate_text = Format$(visitdate, "mm\-dd\-yyyy")

wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(1, 0) = INWBK.Sheets("QTR").Range("B7").Value

wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 1) = INWBK.Sheets("QTR").Range("H11").Value
wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 3) = INWBK.Sheets("QTR").Range("H13").Value

wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 4) = TOTMFG
wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 5) = TOTWC
wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 6) = "OPEN"

wbk.Sheets("QTR_LOG").Range("B" & Rows.Count).End(xlUp).Offset(0, 7) = INWBK.Sheets("QTR").Range("H9").Value


Application.DisplayAlerts = False
INWBK.SaveAs Filename:="C:\. QUOTE REQUESTS" & _
"\DCS QTR " & MFG & " " & " " & JOB & " " & visitdate_text & ".xlsx", _
FileFormat:=51, CreateBackup:=False, local:=True


Set XL = Nothing
Unload Me
wbk.Close
End Sub

输出文件中的代码(工作簿日志):

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.DisplayAlerts = False
ThisWorkbook.Save

End Sub

1 个答案:

答案 0 :(得分:0)

尝试ThisWorkbook.Saved = True 即使未保存工作簿,excel也会像保存一样