У меня есть файл Excel с различными таблицами, содержание которого регулярно обновляется одним макросом. Пользователь должен щелкнуть по каждому листу по очереди и выполнить макрос. Макрос запрашивает отдельный csv-файл для каждого листа, который необходимо выбрать из папки «Файл» вручную.
Вот что скрипт должен делать в фоновом режиме:
- чтение рабочей книги из csv-файла «excelfile1.csv»
- чтение рабочей таблицы из csv-файла worksheets.csv со списком рабочих листов (company1, company2, company3, et c ...)
- активировать рабочий лист с именем «company1», запустить макрос, макрос запрашивает файл с именем «accounting-company1.csv». Confirm, Wait и Macro затем сообщает, что рабочая таблица с именем «Company1» была обновлена.
- активирует рабочую таблицу с именем «company2», запускает макрос, макрос запрашивает файл с именем «accounting-company2.csv». Confirm, Wait andMacro затем сообщает, что лист с именем «Company2» обновлен.
- активировать лист с именем «company3», запуск макроса, макрос запрашивает файл с именем «accounting-company3.csv». Confirm, Wait и Macro затем сообщает, что лист с именем «Company3» обновлен. Et c ....
Я благодарен за любую поддержку; -)
Вот мой сценарий, который нужно исправить:
# Open Excel file
$excel = new-object -comobject excel.application
$filePath = "u:\Test_CompanyAccouting.xlsm"
$workbook = $excel.Workbooks.Open($FilePath)
$excel.Visible = $true
# Get Names of existing Worksheets
$worksheets = Get-ChildItem -Path u:\List_WorksheetsNames.csv | ForEach-
Object {$_.name}
forEach ($Worksheet in $Worksheets) {
$WS = $Workbook.Worksheets.Item($Worksheet)
$WS.Activate()
$excel.Run("MacroAccounting")
}
$workbook.save()
$workbook.close()
$excel.quit()