首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据日期打开文件,粘贴数据,保存为新日期并关闭

问根据日期打开文件,粘贴数据,保存为新日期并关闭
EN

Stack Overflow用户
提问于 2014-09-16 07:50:45
回答 1查看 921关注 0票数 0

我需要每月复制一些数据,将其粘贴到电子表格中,然后将其保存为一个带有更新日期的新文件。我需要宏来查看A6是否为空,然后从A6中选择所有数据,我认为这是用if Not语句完成的。

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

我需要打开的纸张将是最后一个月,所以我需要它来选择那个月,然后是yy格式的年份。

我还需要它在一定范围内清除工作表,然后粘贴到第一个工作簿中的数据,然后用更新的日期保存为mmyy和这个月的日期。

如何将代码设置为基于mmyy打开文件,然后保存为和关闭?这一切能在我打开的IF语句中完成吗?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 08:53:17

你要找的是 function。

代码语言:javascript
复制
Format(Now, "mmyy")

在编写本报告时返回0914。

然而,看起来你想从今天的日期减去一个月。这将起到以下作用:

代码语言:javascript
复制
Format(DateSerial(Year(Now), Month(Now) - 1, 1), "mmyy")

它应该取代不编译的(Now(mm) - 1) & Now(yy),因为这是 works。

对于SaveAs和Close,最简单的方法是首先设置对正在打开的工作簿的引用:

代码语言:javascript
复制
Dim wb As Workbook
Set wb = Workbooks.Open(Filename:="...somewhere...")
'... do stuff to the workbook
wb.SaveAs Filename:="...somewhere else..."
wb.Close
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25863358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档