2016-01-23 455 views
0

我查询xls文件并将其保存到文件夹中。此文件夹位于许多文件夹的末尾,我希望代码使用先前的文件夹名称保存它(猜测我需要一个只返回一个文件夹的相对路径)&当前文件夹名称&当前日期,以xlsm格式稍后我可以使用宏。VBA代码将工作簿另存为文件夹名称

例如: 此前文件夹的名称是“主文件夹” 当前文件夹的名称是“程序” 日期是“2016年1月22日”

我希望它保存为“主文件夹中计划16年1月22日“作为一个xlsm文件

我已经保存到特定的位置之前,但这是不同的,因为我需要它是一个相对的参考,因为我为不同的报告做这个程序几十次/日。

的Excel 2013

+0

'ActiveWorkbook.Path'会告诉你在哪里工作簿所在 - –

回答

0

好了,所以这可能是一个有点丑陋的解决方案,但它为我工作。请注意,我在我的Mac上,因此给出了路径:它可能在内存中的Windows上。所以就更新一下。但是...:

Dim str As String 
Dim today As Date 
Dim x As Integer 

today = Now() 
str = Application.ActiveWorkbook.Path 
x = InStrRev(str, ":", InStrRev(str, ":") - 1) 
str = Mid(str, x + 1) 
str = Replace(str, ":", " ") 
str = str + " " + Format(today, "dd.mm.yyyy") 
+0

我不知道有关Mac,但它看起来像Mac上使用不同的路径分隔符'“:”'相对于Windows使用'“\”'。使用'Application.PathSeparator'来克服不同之处。 – Rosetta

+0

是的,我提到我认为它是不同的,并相应地调整。 'Application.PathSeparator'只是返回它不是?而不是克服它本身。 – andrewf

+0

命名文件并保存为xlsm,但将其保存到我的文档文件夹中,而不是保存到文件夹名称的文件夹中。你知道我需要添加什么来修复文件路径吗? 昏暗str作为字符串 昏暗的今天截止日期 昏暗X作为整数 “保存Excel文件,并将其命名为现有的文件夹,当前文件夹和当前日期 今日= NOW() 海峡= Application.ActiveWorkbook.Path X = (str,“\”,InStrRev(str,“\”) - 1) str = Mid(str,x + 1) str = Replace(str,“\”,“”) str = str + “+格式(今天,”mm.dd.yyyy“) ActiveWorkbook.SaveAs文件名:= str&”.xlsm“,FileFormat:= xlOpenXMLWorkbookMacroEnabled – jslice25

相关问题