是否有人在进度4GL中使用Excel的removeduplicate方法?你能告诉我语法是什么吗?
VBA中的示例:
ActiveSheet.Range("A1:C100").RemoveDuplicates Columns:=Array(1,2), Header:=xlYes
这是我在进度4gl中尝试的:
PROCEDURE pi-elimina-duplicata:
DEFINE VARIABLE v-chr-excel-application AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE v-chr-work-book AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE v-chr-work-sheet AS COM-HANDLE NO-UNDO.
DEFINE VARIABLE v-chr-range AS CHARACTER NO-UNDO.
DEFINE VARIABLE v-int-line AS INTEGER NO-UNDO INITIAL 1.
DEFINE VARIABLE v-int-ultimalinha AS INTEGER NO-UNDO.
DEFINE VARIABLE v-coluna-a AS CHARACTER FORMAT "X(20)".
DEFINE VARIABLE v-coluna-b AS CHARACTER FORMAT "X(20)".
DEFINE VARIABLE v-coluna-c AS CHARACTER FORMAT "X(20)".
CREATE 'excel.application':U v-chr-excel-application.
v-chr-excel-application:VISIBLE = TRUE.
ASSIGN
v-chr-work-book = v-chr-excel-application:Workbooks:OPEN(c-nome-arquivo) v-chr-work-sheet = v-chr-excel-application:Sheets:ITEM(1)
v-int-ultimalinha = v-chr-excel-application:Activesheet:Usedrange:Rows:COUNT
.
/* v-chr-work-sheet:Range("$A$1:$AC$568"):RemoveDuplicates:COLUMNS:Array(1, 2, 3, 4, 5, 6, , 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29):HEADER:xlYes. */
v-chr-work-sheet:UsedRange:RemoveDuplicates("A:AC",1) /* ("1, 2, 3, 4, 5, 6, , 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29", YES) */.
/* Range(“A1:C8”).RemoveDuplicates Columns:=1, Header:=xlYes */
v-chr-excel-application:Workbooks:APPLICATION:QUIT.
RELEASE OBJECT v-chr-excel-application NO-ERROR.
RELEASE OBJECT v-chr-work-sheet NO-ERROR.
RELEASE OBJECT v-chr-work-book NO-ERROR.
END PROCEDURE.
正确的语法应该是:
DEFINE VARIABLE columnsArray AS INTEGER EXTENT 2 NO-UNDO.
columnsArray[1] = 1 .
columnsArray[2] = 2 .
v-chr-work-sheet:Range("A1:A5"):RemoveDuplicates(columnsArray, 1 /* XlYesNoGuess:xlYes */ ) .
对于数组,传入一个ABL数组,头常量需要替换为单个整数值:https://learn.microsoft.com/en-us/office/vba/api/excel.xlyesnoguess
然而,代码错误,但也许这有助于你更进一步。
访问组件属性/方法:removeduplicate时发生错误。Ausnahmefehler aufgetreten .
错误码:0x80020009 test。p (5890)