关闭宏与当前日期

时间:2012-07-24 15:21:18

标签: excel vba excel-vba

我正在使用宏来关闭多个文件,其中一个文件使用文件名中的当前日期。我需要宏来单击工作簿,然后关闭它并保存它。我想我几乎拥有它,但我只是不能让宏点击活动工作簿,文件名将每天更改。这就是我所拥有的。

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

我不知道如何使用“Windows(”ClosePathDate“)”我也试过Windows = ClosePathDate.Activate,没有运气。

请帮忙。

1 个答案:

答案 0 :(得分: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