@all,
auf Anfrage aus dem englischen Forum habe ich für meine Excelfunktions-LIB folgendes
versucht umzusetzen.
Es soll die max. Anzahl der druckbaren Seiten aus der aktiven Exceltabelle festgestellt werden.
Dazu gibt es zwei verschiedene Möglichkeiten, die ich noch nicht richtige in PB umsetzen konnte.
VBA-Script 1 hat geschrieben:WorkSheets(1).HPageBreaks.Count
und
WorkSheets(1)VPageBreaks.Count
sowie
VBA-Script 2 hat geschrieben:ExecuteExcel4Macro("Get.Document(50)")
Die erste Möglichkeit welche ich in PB probiert habe sieht so aus:
Code: Alles auswählen
Procedure.l XLSFunc_GetSideNumbers(ExcelObject.COMateObject); Test1 max. Druckerseiten
Protected HPage.l,VPage.l
HPage=ExcelObject\GetIntegerProperty("WorkSheets(1)\HPageBreaks\Count")+1:Debug COMate_GetLastErrorDescription()
VPage=ExcelObject\GetIntegerProperty("WorkSheets(1)\VPageBreaks\Count")+1:Debug COMate_GetLastErrorDescription()
ProcedureReturn HPage*VPage
EndProcedure
Speziell habe ich die zweite Version des VBA-Scripts probiert, welche die Anzahl der Druckseiten auf
die aktive Tabelle feststellen soll. Man kann ja in Excel mehrere Druckbereiche vorgeben, die
in VBA auch korrekt gezählt werden. Nur komme ich in PB mit COMate nicht so richtig weiter.
Hier, so wie ich eine Procedure dafür getestet habe:
Code: Alles auswählen
Procedure.i XLSFunc_Get_SideNumbers(ExcelObject.COMateObject); Test2 max. Druckerseiten
Protected ReturnValue.i
ReturnValue=ExcelObject\GetIntegerProperty("ExecuteExcel4Macro('Get\Document(50)')"):Debug COMate_GetLastErrorDescription()
ProcedureReturn ReturnValue
EndProcedure
Wenn ich diese so ausführe, kommt folgende Fehlermeldung:
COMatePlus hat geschrieben:Type mismatch in the method parameters
Wisst ihr, was ich hier falsch mache bzw. was ich daran ändern muss?
Ich würde mich sehr freuen, wenn ihr mir hierzu weiter helfen könntet.
Gruß,
Falko