Zählen der Reihen in Exel mit PureDisphelper

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Zählen der Reihen in Exel mit PureDisphelper

Beitrag von dysti »

Hallo,
habe versucht mit Hilfe des PureDisphelpers folgende Funktion zu realisieren.
Ich möchte die Anzahl der Reihen in einer Exeldatei zählen.
Der Exelbefehl lautet:
ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
Mein Code:

Code: Alles auswählen

Procedure.l ReadCountRow(*obj)
  Protected ReturnValue.l, Resume.l
  dhGetValue("%T", @ReturnValue, *obj, ".ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row") 
  If ReturnValue
    Resume=PeekD(ReturnValue)
    ProcedureReturn Resume
  EndIf
EndProcedure
Der Dishelper gibt die Fehlermeldung aus: Die Methode Count würde nicht unterstützt.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Zählen der Reihen in Exel mit PureDisphelper

Beitrag von Kiffi »

Code: Alles auswählen

#xlCellTypeLastCell = 11

Procedure.l ReadCountRow(*obj)
  Protected ReturnValue.l
  dhGetValue("%d", @ReturnValue, *obj, "ActiveSheet.Cells.SpecialCells(%d).Row", #xlCellTypeLastCell)
  ProcedureReturn ReturnValue
EndProcedure
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

@Kiffi,
erstmal danke, die Procedure funzt super.

habe im Internet nach dieser Konstante gesucht "#xlCellTypeLastCell" und diesen Code für Exel gefunden:
LZ3 = Ws3.Cells.SpecialCells(xlCellTypeLastCell).Row
LS1 = Ws1.Cells.SpecialCells(xlCellTypeLastCell).Column
dementsprechend habe ich diese Procedure nach deinem Code geändert:

Code: Alles auswählen

;ActiveSheet.Cells(6, Columns.Count).End(xlToLeft).Column

Procedure.l ReadCountColumns(*obj)
  Protected ReturnValue.l
  dhGetValue("%d", @ReturnValue, *obj, "ActiveSheet.Cells.SpecialCells(%d).Columns", #xlCellTypeLastCell)
  ProcedureReturn ReturnValue
EndProcedure
Als Rückgabe bekomme ich die Zahl: 39255
Da ich 10 Spalten habe, sollte eigentlich als Zahl "10" zurückgegeben werden.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

Fehler gefunden: Column statt Columns
Wieder einer von diesen häßlichen Schreibfehlern.
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten