我需要每月复制一些数据,将其粘贴到电子表格中,然后将其保存为一个带有更新日期的新文件。我需要宏来查看A6是否为空,然后从A6中选择所有数据,我认为这是用if Not语句完成的。
完成后,我需要打开一个以"Filepath/mmyy Filename.xls“格式保存的电子表格。
我需要打开的纸张将是最后一个月,所以我需要它来选择那个月,然后是yy格式的年份。
我还需要它在一定范围内清除工作表,然后粘贴到第一个工作簿中的数据,然后用更新的日期保存为mmyy和这个月的日期。
如何将代码设置为基于mmyy打开文件,然后保存为和关闭?这一切能在我打开的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发布于 2014-09-16 08:53:17
你要找的是 function。
Format(Now, "mmyy")在编写本报告时返回0914。
然而,看起来你想从今天的日期减去一个月。这将起到以下作用:
Format(DateSerial(Year(Now), Month(Now) - 1, 1), "mmyy")它应该取代不编译的(Now(mm) - 1) & Now(yy),因为这是 works。
对于SaveAs和Close,最简单的方法是首先设置对正在打开的工作簿的引用:
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="...somewhere...")
'... do stuff to the workbook
wb.SaveAs Filename:="...somewhere else..."
wb.Closehttps://stackoverflow.com/questions/25863358
复制相似问题