1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Скрипт не сохраняет Excel файл

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
Schalk
осмотрелся
осмотрелся
Сообщения: 120
Зарегистрирован: 10 окт 2022, 14:26
Имя: Александр
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Скрипт не сохраняет Excel файл

Сообщение Schalk »

Всем привет!

написал следующий скрипт в Тиа Портал 15

"Sub WriteToExcel()

Dim a

Set a = CreateObject ("Excel.Application")

a.Visible = True

a.Workbooks.Open "E:\TIA_To_Excel\Test_Excel_File.xls"


a.cells(1,1).Value = SmartTags("Temperature")
a.cells(1,2).Value = SmartTags("Pressure")



a.Workbook.SaveAs "E:\TIA_To_Excel\Test_Excel_File.xls"
a.Workbooks.Close
a.Quit

Set a = Nothing

End Sub"

Файл открывает, значения в ячейки пишет, дальше должен файл сохранить и закрыть, но у меня файл не сохраняется и закрытия не происходит. В чем может быть проблема? компилятор ошибок не выдает

AppCreator
здесь недавно
здесь недавно
Сообщения: 33
Зарегистрирован: 02 фев 2023, 10:38
Имя: Владимир
Страна: РФ
город/регион: Восьмипалатинск
Благодарил (а): 4 раза
Поблагодарили: 12 раз

Скрипт не сохраняет Excel файл

Сообщение AppCreator »

Schalk писал(а): 12 янв 2024, 10:09 В чем может быть проблема?
Либо так:
a.ActiveWorkbook.SaveAs "E:\TIA_To_Excel\Test_Excel_File.xls"
a.ActiveWorkbook.Close
a.Quit
Set a = Nothing
Либо так (в Вашем примере используется то же самое имя):
a.ActiveWorkbook.Save
a.ActiveWorkbook.Close
a.Quit
Set a = Nothing

А в целом лучше через явный референс на книгу сделать:
Set a = CreateObject("Excel.Application")

a.Visible = True

Set b = a.Workbooks.Open("E:\TIA_To_Excel\Test_Excel_File.xls")

b.Worksheets(1).Cells(1, 1).Value = SmartTags("Temperature")
b.Worksheets(1).Cells(1, 2).Value = SmartTags("Pressure")

b.SaveAs "E:\TIA_To_Excel\Test_Excel_File.xls"
'либо b.Save
b.Close
a.Quit

Set a = Nothing

I_m
освоился
освоился
Сообщения: 257
Зарегистрирован: 28 сен 2022, 15:26
Имя: Андрей
Благодарил (а): 4 раза
Поблагодарили: 39 раз

Скрипт не сохраняет Excel файл

Сообщение I_m »

Schalk писал(а): 12 янв 2024, 10:09 В чем может быть проблема?
Вы работаете через объект Application, а у него нет свойства Workbook, есть только Workbooks
Schalk писал(а): 12 янв 2024, 10:09 a.Workbook.SaveAs "E:\TIA_To_Excel\Test_Excel_File.xls"
т.ч., думаю, достаточно будет эту строчку переписать как

a.ActiveWorkbook.SaveAs "E:\TIA_To_Excel\Test_Excel_File.xls"

Поторопился. Это
Schalk писал(а): 12 янв 2024, 10:09 a.Workbooks.Close
вообще убрать. Workbooks - это коллекция, нет у неё Close.

Достаточно Quit у Application

Автор темы
Schalk
осмотрелся
осмотрелся
Сообщения: 120
Зарегистрирован: 10 окт 2022, 14:26
Имя: Александр
Страна: Россия
город/регион: Санкт-Петербург
Благодарил (а): 27 раз
Поблагодарили: 9 раз

Скрипт не сохраняет Excel файл

Сообщение Schalk »

I_m писал(а): 12 янв 2024, 11:33 вообще убрать. Workbooks - это коллекция, нет у неё Close.
вот это помогло) все сохраняется и закрывается теперь) делал по видео с ютуба изначально) Бэйсик не знаю совсем) Спасибо) буду дальше ковырять тему)
Ответить

Вернуться в «Simatic TIA Portal»