根据date打开文件,粘贴数据,保存为新的date并closures

我需要每月复制一些数据,将其粘贴到电子表格中,然后将其另存为具有更新date的新文件。 我需要macros查看A6是否为空,然后从A6中select所有数据,我认为这是用If Not语句完成的。

完成后,我需要打开一个以“Filepath / mmyy Filename.xls”格式保存的电子表格

我需要打开的工作表将是最后几个月,所以我需要它select那个月,然后在格式为yy年。

我还需要它清除一定范围内的工作表,然后粘贴第一个工作簿中的数据,然后用这个月份date的更新date为mmyy粘贴。

如何设置我的代码打开基于mmyy的文件,然后保存并closures? 这一切都可以在我已经打开的IF声明中完成吗?

Sub Test() Dim wksht As Worksheet Dim rng As Range Set wksht = Sheets("Birse CH") Set rng = wksht.Range("A5") If Not IsEmpty(rng.Offset(1, 0)) Then Set rng = Range(rng.End(xlDown).Offset(0, 14), rng.Offset(1, 0)) Selection.Copy 'opening workbook Workbooks.Open Filename:="H:\Finance\CBF\Invoices\Monthly Invoicing Summary\" & Year(Date) & "\ASM\" & (Now(mm) - 1) & Now(yy) & " ASM CBF Reg Summary.xlsx" Selection.Paste End If End Sub 

你正在寻找的是Formatfunction 。

 Format(Now, "mmyy") 

在撰写本文时返回0914

但是,看起来你想从今天的date减去一个月。 这将做的伎俩:

 Format(DateSerial(Year(Now), Month(Now) - 1, 1), "mmyy") 

这应该取代(Now(mm) - 1) & Now(yy)哪个不会编译,因为那不是Now工作方式 。

SaveAsClose ,首先要设置对正在打开的工作簿的引用是最简单的:

 Dim wb As Workbook Set wb = Workbooks.Open(Filename:="...somewhere...") '... do stuff to the workbook wb.SaveAs Filename:="...somewhere else..." wb.Close