Запустите Excel манипуляции с фоном. При ручном открытии другой скрипт Excel не работает - PullRequest
0 голосов
/ 25 октября 2019

У меня есть файлы дерева: Excel с именем Test.xls (может быть пустым для этого теста);

script1.vbs (Запустить Excel, скрытый для пользователя, открыть книгу Test.xls в текущей директории, подождать100 секунд и закройте файл.):

Dim fileName : fileName = "Test.xls"
'Start Excel invisible
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False

'Create filesystem object
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Set path as Current Folder
Set objFolder = objFSO.GetFolder(".")

'Open file
Set wbSrc = OpenWorkbook(objFSO.GetAbsolutePathName(objFolder), fileName, True)

MsgBox("Start wait!")
WScript.Sleep 100000
MsgBox("End wait!")

'Close file
Call CloseWorkbook(wbSrc)
WrapUp()

Function OpenWorkbook(filePath, fileName, ReadOnlyMode)
    Set wb = objExcel.Workbooks.Open(filePath & "\" & fileName, False, ReadOnlyMode)
    Set OpenWorkbook = wb
End Function

Sub CloseWorkbook(wb)
    Dim wbName : wbName = wb.Name
    objExcel.Workbooks(wb.Name).Saved = True
    objExcel.DisplayAlerts = False
    objExcel.Workbooks(wb.Name).Close SaveChanges=False
End Sub

Sub WrapUp()
    objExcel.Quit
    Set wsSrc = Nothing
    Set objExcel = Nothing
    Set objFSO = Nothing
    Wscript.Quit
End Sub

И run.bat (только запустить script1.vbs):

cscript script1.vbs

Когда я запускаю run.bat, во время его работы яоткрыть вручную (с помощью мыши) другую рабочую книгу, результат, который я вижу, открыт и Test.xls. Что мне нужно сделать, чтобы скрыть работу над Test.xls.

Примечания: В реальном коде много манипуляций с Test.xls, таких как запись, масштабирование и т. Д. Еще одно странное поведение - когда я вижу Test.xls, скрипт работает, и я щелкаю где-то в Test.xls, затем скрипт сразу же завершается ошибкой, когда я закрываю Test.xls или другой файл Excel.

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