2012-07-24 63 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