Excel автоматическое обновление и сохранение файла на моем компьютере каждый день - PullRequest
0 голосов
/ 14 мая 2019

Мой файл Excel подключен к базе данных служб анализа.Я хочу автоматически обновлять Excel и сохранять его на своем компьютере каждый день, даже если я не открываю Excel.

Мне интересно, как это сделать.

Причина, по которой я хочу это сделать: поскольку он подключен к базе данных и показывает только данные за последние 5 недель, и я хочу сохранять все данные каждый день, чтобы иметь исторические данные.

Пожалуйста, помогите, если вы знаете, как это сделать

Я хочу, чтобы файл Excel автоматически сохранялся на моем компьютере, например, на рабочем столе каждый день, даже если я его не открывал.

1 Ответ

0 голосов
/ 14 мая 2019

Вы можете написать макрос VBA (повторно использовать то, что вы уже написали) и вызывать его из Excel в сценарии VBS, который был запущен планировщиком Windows, когда вам нужно.

Мой 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

Надеюсь, это поможет вам решить вашу проблему.

В этом примере я загружаю CSV-файл в Excel, но при желании вы можете запустить SQL-команду в VBA и заполнить то, что вы хотите, используя чистые макросы Excel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...