簡體   English   中英

關閉工作簿和VBA文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM