VBScript / VBA / Excel

#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 , который можно использовать для открытия файла и записи текущего времени.