#excel #vba #vbscript
#excel #vba #vbscript
Вопрос:
У меня есть более 70 файлов Excel с макросами в них, файлы Excel настроены на запуск после того, как я их открою, а затем они закрываются сами по себе после выполнения всех процедур. Я создал скрипт vbs, который открывает их, а затем закрывает, и все работает идеально. Кроме того, я создал список файлов Excel, которые запускаются VBS, и поместил его в отдельный файл Excel, мой вопрос заключается в том, как создать VBScript, который фиксировал бы время, когда каждый файл Excel был открыт с помощью скрипта VBS.
Для одного файла
Option Explicit
Dim oExcel, oSheet
Set oExcel = CreateObject("Excel.Application")
oExcel.workbooks.open "C:Docum..............data.xlsm"
Set oSheet = oExcel.ActiveWorkbook.Worksheets(1)
oExcel.ActiveWorkbook.sAVE
oExcel.ActiveWorkbook.Close
oExcel.Quit
Set oSheet = Nothing
Set oExcel = Nothing
Или для «i» количества файлов
Option Explicit
Dim filePath(1)
Dim oExcel, oSheet
Dim i
filePath(0) = "C:Docum..........data.xlsm"
filePath(1) = "C:Docum..........data1.xlsm"
Set oExcel = CreateObject("Excel.Application")
For i = 0 To 1
oExcel.Workbooks.Open (filePath(i))
Set oSheet = oExcel.ActiveWorkbook.Worksheets(1)
oExcel.Run "macro1"
oExcel.ActiveWorkbook.Save
oExcel.ActiveWorkbook.Close
oExcel.Quit
Set oSheet = Nothing
Next
Set oExcel = Nothing
Sub Macro1()
Sheets("Sheet1").Select
Range("A5").Select
ActiveCell.Value = "1"
End Sub
Комментарии:
1. Ваш vbscript завершает работу с Excel после обработки только одной книги: переместите эту строку после цикла For ..Next. Не могу понять, в чем заключается ваш главный вопрос…
2. Пожалуйста, выберите более описательный заголовок вопроса, чем «VBScript / VBA / Excel». Кроме того, ваш вопрос неясен. Что именно вы хотите, чтобы произошло? Пожалуйста, удалите все посторонние детали, так как они всех сбивают с толку.
Ответ №1:
как создать VBScript, который фиксировал бы время открытия каждого файла Excel
Ваш вопрос не очень ясен (где вы хотите записать время?), Но:
-
В VBScript есть функция «Now», которая возвращает текущую дату / время
-
Excel предоставляет объектную модель, которая позволит вам сэкономить время где-нибудь в рабочей книге.
-
В VBScript есть объект
Scripting.FileSystemObject
, который можно использовать для открытия файла и записи текущего времени.