我正在使用宏来关闭多个文件,其中一个文件使用文件名中的当前日期。我需要宏来单击工作簿,然后关闭它并保存它。我想我几乎拥有它,但我只是不能让宏点击活动工作簿,文件名将每天更改。这就是我所拥有的。
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,没有运气。
请帮忙。
答案 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