Excel自动刷新,每天将文件保存到我的计算机中

时间:2019-05-14 08:06:06

标签: excel vba autosave

我的excel文件已连接到Analysis Services数据库。我想自动刷新Excel,并将其每天保存到我的计算机中,即使我没有打开Excel。

我想知道如何去做。

我要这样做的原因:由于它已连接到数据库,并且仅显示最近5周的数据,因此我想每天保存所有数据,以便可以拥有历史数据。

如果您知道该怎么做,请帮忙

我想要的是excel文件会自动保存到我的计算机中,例如,即使我没有打开它,每天也会将其保存在台式机中。

1 个答案:

答案 0 :(得分:0)

您可以编写一个VBA宏(重用您已经编写的内容),并根据需要在Windows Scheduler启动的VBS脚本中从Excel中调用它。

我的BAT文件

::********************************************************************
::* Generate-Excel-File.bat
::********************************************************************

@echo ON
SETLOCAL ENABLEDELAYEDEXPANSION

C:\windows\syswow64\cscript.exe LoadExcel.vbs

我的VBS文件

'*****************************************************************************
'* LoadExcel.vbs
'*****************************************************************************

' Create a WshShell to get the current directory

Dim WshShell
Set WshShell = CreateObject("WScript.Shell")

' Create an Excel instance
Dim oExcel
Dim oWorkBook

Set oExcel = CreateObject("Excel.Application") 

' Disable Excel UI elements
oExcel.DisplayAlerts = False
oExcel.AskToUpdateLinks = False
oExcel.AlertBeforeOverwriting = False
oExcel.FeatureInstall = msoFeatureInstallNone

' Tell Excel what the current working directory is 
' (otherwise it can't find the files)
Dim strSaveDefaultPath
Dim strPath

strSaveDefaultPath = oExcel.DefaultFilePath
strPath = WshShell.CurrentDirectory 
oExcel.DefaultFilePath = strPath

' Open the Workbook specified on the command-line 

Set oWorkBook = oExcel.Workbooks.Open(strPath & "\US.TRACKING-FILE.NEW.xlsm")

' Build the macro name with the full path to the workbook
on error resume next 
   ' Run the calculation macro
   oExcel.Run "LoadCSV"
   if err.number <> 0 Then
      ' Error occurred - just close it down.
   End If
   err.clear
on error goto 0 

'oWorkBook.Save 

'oExcel.DefaultFilePath = strSaveDefaultPath

' Clean up and shut down
Set oWorkBook = Nothing

' Don’t Quit() Excel if there are other Excel instances 
' running, Quit() will 
' shut those down also
if oExcel.Workbooks.Count = 0 Then
   oExcel.Quit
End If

Set oExcel = Nothing
Set WshShell = Nothing

我希望可以帮助您解决问题。

在此示例中,我在Excel中加载了CSV文件,但如果需要,您可以在VBA中运行SQL命令并使用纯Excel宏填充所需的内容。