使用 Progress 4GL 将 Excel active sheet 复制到工作簿的末尾
Copying Excel active sheet to the end of the workbook with Progress 4GL
我正在尝试将 Excel 活动 sheet 复制到 Progress 4GL 工作簿的末尾。这是我到目前为止尝试过的。
DEFINE VARIABLE chExcelApplication AS COM-HANDLE. /* com-handle for the application */
DEFINE VARIABLE chWorkbook AS COM-HANDLE. /* com-handle for the workbook */
DEFINE VARIABLE iSheetCount AS INTEGER. /* variable to track the current sheet count */
CREATE "Excel.Application" chExcelApplication.
chWorkbook = chExcelApplication:Workbooks:Open("C:\tmp\test.xlsx").
iSheetCount = chWorkbook:sheets:COUNT.
chWorkbook:Sheets(1):COPY:after = chWorkbook:Sheets(iSheetCount).
这是相关的 VBA 代码:
Sheets(1).Copy After:=Sheets(Sheets.Count)
iSheetCount
的快速 return 本身已经给出了正确数量的工作 sheet。如何将 VBA 上的 Copy After
短语变成 Progress 4GL?
这纯粹是猜测,我不使用 Progress 4GL,但也许可以考虑 Worksheet.Copy
的另一个 VBA format/syntax,它没有命名参数但暗示了它从它在命令中的位置:sheet.copy <before>,<after>
:
Sheets(1).Copy , Sheets(Sheets.Count) 'VBA
直接翻译 (完全基于您问题的代码,而不是基于我的任何实际知识 - 我必须强调!) 因此可能是:
chWorkbook:Sheets(1):COPY ,chWorkbook:Sheets(iSheetCount).
否则..可能是这样的:
chWorkbook:Sheets(1):COPY(,chWorkbook:Sheets(iSheetCount)).
更新:
OP 确认以下有效:
chWorkbook:Sheets(1):COPY(,chWorkbook:Sheets(iSheetCount)).
/* 在“hWorkbook:sheets:COUNT”的右边,新建一个sheet */
hWorksheet = hExcelApplication:sheets:item(hWorkbook:sheets:COUNT).
hWorkbook:Worksheets:add(, hWorkSheet)。 /* 在 , 之后保留 SPACE */
hWorksheet = hExcelApplication:sheets:item(hWorkbook:sheets:COUNT).
我正在尝试将 Excel 活动 sheet 复制到 Progress 4GL 工作簿的末尾。这是我到目前为止尝试过的。
DEFINE VARIABLE chExcelApplication AS COM-HANDLE. /* com-handle for the application */
DEFINE VARIABLE chWorkbook AS COM-HANDLE. /* com-handle for the workbook */
DEFINE VARIABLE iSheetCount AS INTEGER. /* variable to track the current sheet count */
CREATE "Excel.Application" chExcelApplication.
chWorkbook = chExcelApplication:Workbooks:Open("C:\tmp\test.xlsx").
iSheetCount = chWorkbook:sheets:COUNT.
chWorkbook:Sheets(1):COPY:after = chWorkbook:Sheets(iSheetCount).
这是相关的 VBA 代码:
Sheets(1).Copy After:=Sheets(Sheets.Count)
iSheetCount
的快速 return 本身已经给出了正确数量的工作 sheet。如何将 VBA 上的 Copy After
短语变成 Progress 4GL?
这纯粹是猜测,我不使用 Progress 4GL,但也许可以考虑 Worksheet.Copy
的另一个 VBA format/syntax,它没有命名参数但暗示了它从它在命令中的位置:sheet.copy <before>,<after>
:
Sheets(1).Copy , Sheets(Sheets.Count) 'VBA
直接翻译 (完全基于您问题的代码,而不是基于我的任何实际知识 - 我必须强调!) 因此可能是:
chWorkbook:Sheets(1):COPY ,chWorkbook:Sheets(iSheetCount).
否则..可能是这样的:
chWorkbook:Sheets(1):COPY(,chWorkbook:Sheets(iSheetCount)).
更新:
OP 确认以下有效:
chWorkbook:Sheets(1):COPY(,chWorkbook:Sheets(iSheetCount)).
/* 在“hWorkbook:sheets:COUNT”的右边,新建一个sheet */
hWorksheet = hExcelApplication:sheets:item(hWorkbook:sheets:COUNT).
hWorkbook:Worksheets:add(, hWorkSheet)。 /* 在 , 之后保留 SPACE */
hWorksheet = hExcelApplication:sheets:item(hWorkbook:sheets:COUNT).