Якщо в тебе вже є файл (шлях у змінній mypath(50)), треба відкрити його через Workbooks->Open.
DATA: g_excel TYPE ole2_object,
g_workbooks TYPE ole2_object,
g_workbook TYPE ole2_object,
g_sheets TYPE ole2_object,
g_sheet TYPE ole2_object,
g_range TYPE ole2_object.
DATA: mypath(50) TYPE c VALUE 'C:\temp\myfile.xlsx'. " твій шлях до файлу
*---------------------------------------------------------------------*
* Запуск Excel
*---------------------------------------------------------------------*
CREATE OBJECT g_excel 'Excel.Application'.
SET PROPERTY OF g_excel 'Visible' = 0. " приховано
" Отримали Workbooks
GET PROPERTY OF g_excel 'Workbooks' = g_workbooks.
" Відкрили існуючий файл
CALL METHOD OF g_workbooks 'Open' = g_workbook
EXPORTING
#1 = mypath.
" Отримали список Sheets з відкритої книги
GET PROPERTY OF g_workbook 'Sheets' = g_sheets.
" Взяли перший лист
CALL METHOD OF g_sheets 'Item' = g_sheet
EXPORTING #1 = 1.
" Доступ до клітинки (наприклад, G2 = рядок 2, колонка 7)
CALL METHOD OF g_sheet 'Cells' = g_range
EXPORTING
#1 = 2 " рядок
#2 = 7. " колонка
SET PROPERTY OF g_range 'Value' = 'Test'.
*---------------------------------------------------------------------*
* Закриття
*---------------------------------------------------------------------*
CALL METHOD OF g_workbook 'Close' EXPORTING #1 = 1. "1 = зберегти зміни
CALL METHOD OF g_excel 'Quit'.
FREE OBJECT g_range.
FREE OBJECT g_sheet.
FREE OBJECT g_sheets.
FREE OBJECT g_workbook.
FREE OBJECT g_workbooks.
FREE OBJECT g_excel.
📌 Тут важливі моменти:
mypath — твій шлях до існуючого Excel-файлу.
Використовується Workbooks->Open, а не Add.
Закриття: Close EXPORTING #1 = 1 → зберегти, або 0 → закрити без збереження.
Завжди йде повний ланцюжок Application → Workbooks → Workbook → Sheets → Sheet → Cells/Range.