| |
|
|
- Seite 1 - |
|
Christof Neuß | Hi, ich möchte auf eine bestehende Excel-Datei zugreifen. Einzelne Zellen sollen ausgelesen und ggfs. auch wieder mit Werten belegt werden.
Geht doch sicher auch mit XProfan, oder?
Zur Not über ActiveX?!
Danke und Gruß |
|
|
| |
|
|
|
| |
|
- Seite 1 - |
|
Uwe ''Pascal'' Niemeier | Hallo Christof!
Geht doch sicher auch mit XProfan, oder? Zur Not über ActiveX?!
[web]https://xprofan.com/thread.core?t=4363[/web] SeeYou Pascal |
|
|
| |
|
|
|
Christof Neuß | Hallo Pascal,
super, damit gehts sicher. Die Beispiele Excel1 und Excel2 funktionieren bei mir einwandfrei. Leider habe ich es noch nicht geschafft, eine vorhandene Excel-Datei zu öffnen. In Excel1.prf habe ich die Zeile KompilierenMarkierenSeparieren durch KompilierenMarkierenSeparieren ersetzt. Funktioniert aber nicht. Irgendwas stimmt mit dem/den Parametern (Dateiname) nicht. Die Datei gibt es aber in diesem Verzeichnis. Habe schon alles mögliche ausprobiert. Weißt Du was?
Danke! |
|
|
| |
|
|
|
Christof Neuß | Hi Pascal,
ich bins nochmal.
Bin in XProfan noch nicht so bewandert. Kann es sein, dass hier irgendwas fehlt? KompilierenMarkierenSeparieren
proc ocxPutParams-------------------------------ocxPutParams----------------------------
declare Pos%,v$,v&,v%
dim Param#,(Count%-1)*16--Parameter-Array
clear Param#
whileloop Count%,3,-1--bestücken in umgekehrter Reihenfolge!
v$=$(&loop)
v&=&(&loop)
v%=~VT_I4
if left$(v$,1)=*------Parameter ist String
v%=~VT_BSTR
v$[&loop]=MultiToWideEx(del$(v$,1,1))
v&=addr(v$[&loop])
elseif left$(v$,1)=#--Parameter ist Objekt
v%=~VT_DISPATCH
v&=val(del$(v$,1,1))
endif
word Param#,Pos%=v%--Typ
Pos%=Pos%+8
long Param#,Pos%=v&--Wert
Pos%=Pos%+8
endwhile
endproc---------------------------------------------------------------------------------
Oben werden Count% und Param# angesprochen, die aber hier nicht übergeben oder declariert werden. Wie gesagt, ich verstehs noch nicht so richtig.
Merci! |
|
|
| |
|
|
|
| Beides in übergeordneter Prozedur/Funktion oder gar global? |
|
|
| |
|
|
|
Christof Neuß | SORRY!
Hallo Pascal,
es funktioniert!!!! Ich hatte nur ein * am Anfag des Dateinamens vergessen. BTW: Warum muss das da hin?
Merci! |
|
|
| |
|
|
|
Christof Neuß | Hi iF,
jo, jetzt hab ICHs auch endlich kapiert. Deklarierte Variablen sind ja hier auch für die untergeordneten Procs sichtbar.
Danke für den Hinweis! |
|
|
| |
|
|
|
Christof Neuß | Hallo Pascal,
beim Kompilieren mit XPSE bekomme ich immer die Fehlermeldung, dass bei 2 Zeilen das Stringende fehlt. Ich habe dann in der OCX2.PH an folgende Zeilen ein zweites angehängt. Jetzt gehts! KompilierenMarkierenSeparieren Kannst Du damit was anfangen? |
|
|
| |
|
|
| |
|
- Seite 2 - |
|
|
Uwe ''Pascal'' Niemeier | Hallo Christof!
Probier mal diese Variante:
CoUninitialize(=External(ole32,CoUninitialize,; AtlAxWinInit(=External(atl.dll,AtlAxWinInit,;
In früheren Profan-Versionen (bis 7.5) durfte nämlich hinter externen Funktionen, die keinen Parameter erwarteten, kein Komma stehen, ab 7.5 wars egal. Und weil XPSE immer auf dem neuesten Stand ist, erwartet es jetzt wahrscheinlich genau dieses Komma.
Zu der Sache mit dem *: Steht in der Hilfe zu den Routinen; zwar kann Profan inzwischen die Art übergebener Parameter erkennen, aber weil Windows/ActiveX mehr Variablen-Typen kennt als Profan wären zusätzliche Präfixes als Kennung irgendwann so oder so nötig gewesen.
HTH Pascal |
|
|
| |
|
|
|
Christof Neuß | Hallo iF,
kann das auch ein Problem von XPSE sein? Wenn ich normal kompiliere funktioniert alles, mit XPSE bekomme ich folgende Fehlermeldung:
Stringende fehlt! __cf7&=__cf1(__cf2(atl.dll),AtlAxWinInit)
Ich würde halt gerne XPSE nutzen, da ich z.B. so einfach das Programm-Icon austauschen kann. |
|
|
| |
|
|
|
Christof Neuß | Hallo Pascal,
das Komma hat geholfen, die Fehlermeldung mit dem fehlende Stringende zu beheben. XPSE kompiliert jetzt auch. Allerdings schmiert das Programm schon bei ocxInit() mit Profan-Runtime hat ein Problem festgestellt und muss beendet werden. total ab.
Ich krieg hier noch die Krise.... |
|
|
| |
|
|
|
| Schau mal das Problem hatte ich auch schon: [...]
Hier liegt einfach ein Syntaxfehler im Headerfile vor - dadurch ergibt sich ein Folgefehler welcher von XPSE angemeckert wird.
Ich habe dort eine Korrigierte hochgeladen. |
|
|
| |
|
|