Vba 储蓄及;以当前日期为名称关闭工作簿
我是VBA新手,我希望使用VBA自动化当前的流程 对于每个月的每个星期(星期三),我需要将现有Excel模板从Internet导出到新工作簿中。这部分已经完成,但我需要:Vba 储蓄及;以当前日期为名称关闭工作簿,vba,excel,Vba,Excel,我是VBA新手,我希望使用VBA自动化当前的流程 对于每个月的每个星期(星期三),我需要将现有Excel模板从Internet导出到新工作簿中。这部分已经完成,但我需要: 将其保存为:“01 05 2018_含税_1889”。到目前为止,我已经找到并修改了下面的代码,当在下面运行一次时,会创建一个临时文件并将其保存到我的文件夹中,但不会自动关闭它。 这将是伟大的所有下载文件与他们的相关日期保存在我的文件夹 我也愿意通过一个查询来完全自动化这个过程,该查询将在每周的每个星期三启动这个过程 Priv
Private Sub ADD_BTN_Click()
Dim line As Integer
Dim Ws As Worksheet
Dim DBS As Database
Dim RST As Recordset
Dim SQL_TXT As String
Dim COUNTRY_ID As Integer
Dim DATE_FUEL As String
Dim test As Boolean
DownloadFile (LINK_FUEL) ' Download file on C:\TEMP
Workbooks.Open (BUFFER_FILE)
Set Ws = ActiveWorkbook.Worksheets("Weekly Prices with taxes")
datEfuel = Right(Ws.Cells(1, 12), 10)
For line = 1 To 47
If OPEN_DBS(DBS, FUEL_DB) Then
SQL_TXT = "SELECT * FROM COUNTRY_DATA WHERE COUNTRY_NAME LIKE '" & Ws.Cells(line, 1).Value & "'" ' Search Country name
If OPEN_RST(DBS, RST, SQL_TXT) Then
COUNTRY_ID = RST![COUNTRY_ID]
RST.Close
SQL_TXT = "SELECT * FROM FUEL_DATA WHERE COUNTRY_ID=" & COUNTRY_ID
test = True
If OPEN_RST(DBS, RST, SQL_TXT) Then
While Not RST.EOF
If RST![FUELDATA_DATE] = CDate(datEfuel) Then test = False
RST.MoveNext
Wend
RST.Close
End If
If test Then
SQL_TXT = "SELECT * FROM FUEL_DATA"
OPEN_NEW DBS, RST, SQL_TXT
RST![COUNTRY_ID] = COUNTRY_ID
RST![FUELDATA_DATE] = datEfuel
RST![FUELDATA_AUTOMOTIVE] = Ws.Cells(line, 8).Value
RST.Update
End If
End If
DBS.Close
End If
Next line
End Sub
要使用指定的名称关闭和保存工作簿,可以在上调用,将
True
作为保存更改的第一个参数,并将要保存文件的名称作为第二个参数:
Dim book As Workbook
...
book.Close True, "01 05 2018_With taxes_1889.xlsx"
工作簿对象从以下位置返回:
如果要使用当前日期作为文件名,可以使用以下函数:
book.Close True, Date & ".xlsx"
您可能希望对名称中的日期使用特定格式;这可以通过函数完成,该函数使用一组预定义的日期格式格式化日期:
'Uses the long date format from the computer's regional settings
book.Close True, FormatDate(Date, vbLongDate) & ".xlsx"
或使用允许自定义格式的函数:
book.Close True, Format(Date, "yyyy-mm-dd") & ".xlsx"
请注意,除非指定完整路径,否则这将保存在应用程序的当前文件夹(通常是Documents文件夹)中
book.Close True, "C:\path\to\folder\" & Format(Date, "yyyy-mm-dd") & ".xlsx"
Excel不为计划任务提供工具,这意味着您必须执行以下操作之一:
- 使用Windows任务计划程序启动任务。在这种情况下,我强烈建议不要将代码绑定到特定工作簿,而是在Windows脚本主机下使用VBScript
- 每次打开工作簿(或运行此VBA代码的位置)时进行检查,并在适当的条件下运行该过程
book.Close True, "C:\path\to\folder\" & Format(Date, "yyyy-mm-dd") & ".xlsx"