2012-07-24 64 views
2

我正在使用宏關閉多個文件,其中一個文件名使用當前日期。我需要宏單擊工作簿,然後關閉並保存它。我認爲我幾乎擁有它,但是我只是不能點擊宏來點擊活動工作簿,每日文件名會改變。這是我的。用當前日期關閉宏

Dim ClosePath As String 
Dim ClosePathDate As String 

ClosePath = "File_": 
ClosePathDate = ClosePath & Format(Date, "YYYYMMDD") & ".xlsx" 

Windows("ClosePathDate").Activate 
Sheets("Sheet1").Select 
Range("A1").Select 
ActiveWorkbook.Close SaveChanges:=True 

我不知道如何使用 「窗口(」 ClosePathDate 「)」 我也嘗試過的Windows = ClosePathDate.Activate,沒有運氣。

請幫忙。

+0

做你的其他窗口關閉好嗎? – JMK 2012-07-24 15:27:42

+0

Windows(ClosePathDate).Activate? – grantnz 2012-07-24 15:33:51

回答

2

即使工作簿在另一個Excel實例中打開,這也可以工作。順便說一句,你不需要選擇它來關閉它。

Sub Sample() 
    Dim ClosePath As String 
    Dim ClosePathDate As String 
    Dim xlObj As Object 

    ClosePath = "File_": 
    ClosePathDate = ClosePath & Format(Date, "YYYYMMDD") & ".xlsx" 

    '~~> Replace "C:\" with the relevant path 
    Set xlObj = GetObject("C:\" & ClosePathDate) 
    xlObj.Application.Workbooks(ClosePathDate).Close SaveChanges:=False 
End Sub 

另一種方式

Sub Sample() 
    Dim wb As Workbook 
    Dim ClosePath As String 
    Dim ClosePathDate As String 

    ClosePath = "File_": 
    ClosePathDate = ClosePath & Format(Date, "YYYYMMDD") & ".xlsx" 

    Set wb = Workbooks(ClosePathDate) 

    wb.Close SaveChanges:=False 
End Sub 
+0

是否有簡單的命令關閉excel在一起? – 2012-07-24 15:53:25

+1

是的。 'Application.Quit'。這將關閉Excel,並會提示您是否要保存未保存的工作。如果你想在沒有這些提示的情況下退出,那麼你可以在發出.'Quit'命令之前使用'Application.DisplayAlerts = False'。 – 2012-07-24 15:56:29

+0

很有用,還有一種方法可以關閉運行宏的excel實例。 Application.Quit只爲我留下了一個空白的excel。 – 2012-07-24 16:30:47