[英]Closing workbook AND VBA file
我已經構建了一個小的VBA腳本,但是我無法完全關閉工作簿。 我可以關閉工作簿,但注意到它仍然顯示在VBA編輯器中。 我已經看到了一些關於放置一些代碼以關閉所有內容的其他形式,但我無法讓它工作。
誰能指出我正確的方向?
Private Sub PNTXLXS_Click()
Application.DisplayAlerts = False
Application.EnableCancelKey = xlDisabled
RCD_PNT.Hide
With Sheets("Clash List").UsedRange
mr = .Rows.Count
mc = .Columns.Count
.Range(Cells(1, 26), Cells(mr,mc)).SpecialCells(xlCellTypeVisible).Copy
End With
Workbooks.Add
Application.Visible = True
With ActiveSheet.Range("A1")
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
With Selection
.WrapText = False
.EntireColumn.AutoFit
.WrapText = True
End With
InitialName = Range("A1") & " - " & Format(Now(), "DDMMYY")
filesavename = Application.GetSaveAsFilename(InitialFileName:=InitialName,
fileFilter:="Excel Files (*.xlsx), *.xlsx")
ActiveWorkbook.SaveAs FileName:=filesavename
ActiveWorkbook.Close
我知道這是我需要關閉VBA文件正確的位置嗎?
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
謝謝
標記
從代碼中刪除Application.Visible = True
而不是RCD_PNT.Hide
使用Me.Hide
Private Sub PNTXLXS_Click()
Application.DisplayAlerts = False
Application.EnableCancelKey = xlDisabled
Me.Hide
With Sheets("Clash List").UsedRange
mr = .Rows.Count
mc = .Columns.Count
.Range(Cells(1, 26), Cells(mr,mc)).SpecialCells(xlCellTypeVisible).Copy
End With
Workbooks.Add
' Application.Visible = True
With ActiveSheet.Range("A1")
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
With Selection
.WrapText = False
.EntireColumn.AutoFit
.WrapText = True
End With
InitialName = Range("A1") & " - " & Format(Now(), "DDMMYY")
filesavename = Application.GetSaveAsFilename(InitialFileName:=InitialName,
fileFilter:="Excel Files (*.xlsx), *.xlsx")
Application.CutCopyMode = False
Application.DisplayAlerts = True
End Sub
閱讀Userform.show當然是個好主意
並且它是顯示用戶形式的更好方式
Sub Show_RCDPNT()
Dim frm As New RCD_PNT
frm.Show
Unload frm
End Sub
我看到一個Workbooks.Add命令,因此正在打開一個新的工作簿:你在做什么嗎? 您在該行之前使用了Sheets,因此您已經打開了一個並且它是ActiveWorkbook,而不是新的。 然后,您可以使Excel可見,使用某些范圍,並保存ActiveWorkbook的副本。 但是,由於Excel Application對象仍然存在,工作簿集合中掛起了新工作簿,是嗎? 也許這就是你所看到的?
在“工作表”的“數據”選項卡下,單擊“連接”圖標以查看是否仍鏈接到已關閉的工作簿。 如果是這樣,您可能必須添加一行來斷開鏈接(使用您的文件名)。 類似於ActiveWorkbook.Connections("filename").Delete
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.