Domino 9 und frühere Versionen > ND6: Entwicklung
Frage zu CreateObject( "Excel.Application")
Glombi:
Ich habe mir aus dem Sandkasten ein kleines Programm gesaugt und modifiziert, mit dem ich Daten aus einer Excel Datei lesen kann.
Zu der Stelle CreateObject( "Excel.Application") habe ich eine Frage:
Im Original stand
Set Excel = CreateObject( "Excel.Application.9" ) ' for windows2000
Set Excel = CreateObject( "Excel.Application.8" ) ' for windows95
Ich habe Win XP, da geht es nur mit CreateObject( "Excel.Application").
Läuft das auch unter Win 2000? Oder muss ich da .9 verwenden?
Wenn das BS-abhängig ist: Kann ich per Script auslesen, ob Win 2000 oder XP verwendet wird. Wahrscheinlich gibt es irgendeine DLL, die ich aufrufen muss. Aber welche???
session.Platform liefert ja nur Windows 32.
Hier der komplette Agent:
Sub Initialize
On Error Goto ErrorHandling
Dim Excel As Variant
Dim xlWorkbook As Variant
Dim xlSheet As Variant
Dim xlFilename As String
Dim col_val As String
Dim row As Integer
Dim written As Integer
xlFilename = "e:\kst1.xls"
col_val = "dummy"
' Row number to import
records = 10
'Erstelle Excel-Objekt
Set Excel = CreateObject( "Excel.Application")
%REM
Set Excel = CreateObject( "Excel.Application.9" ) ' for windows2000
Set Excel = CreateObject( "Excel.Application.8" ) ' for windows95
%ENDREM
'Excel.Visible = False ' Don't display the Excel window
Excel.Workbooks.Open xlFilename ' Open the Excel file
Set xlWorkbook = Excel.ActiveWorkbook
Set xlSheet = xlWorkbook.ActiveSheet
' Cycle through the rows of the Excel file, pulling the data over to Notes
row = 0
written = 0
Do While col_val <> ""
With xlSheet
row = row + 1
If row > 1 Then
col_val = .Cells( row, 4 ).Value
Print col_val
End If
written = written + 1
End With
Loop
'Excel schliessen
xlWorkbook.Close
Excel.Quit
Set Excel = Nothing ' Free the memory that we'd used
Exit Sub
'########### ERROR HANDLING ############
ErrorHandling:
Messagebox "Check Excel file location or SW Version or View Name or Form Name" ,MB_OK+MB_ICONINFORMATION,"Warning ! "
Print " " ' Clear the status line
Exit Sub
End Sub
Danke für jede Antwort!
Andreas
Glombi:
CreateObject( "Excel.Application") funktioniert auch unter Windows 2000.
Damit wäre das Problem gelöst.
MartinG:
Ich glaube die Erklärung ist falsch - das ganze bezieht sich vermutlich eher auf die Excel Version
Excel 11 = Excel 2003
10 = Excel XP
9 = Excel 2000
8 = Excel 97
7 = Excel 95
....
Gruss
Martin
Semeaphoros:
Richtig, nur ist die Angabe im Sandkasten bogus. Die Zahl nach Application bezieht sich nicht auf die Windows-Version, sondern auf die Excel-Version, so wie das Martin eben auch aufgeführt hat.
Verwendet man "Excel.Application", so wird die zuletzt installierte Excel-Version verwendet, welche auch immer das ist.
Lässt sich bei MS-Support an verschiedenen Stellen nachlesen
Glombi:
Falls also die Excel-Datei mit der Version X erstellt wird und ein anderer User, der den Scriptagent ausführt, auch die Version X hat, sollte also CreateObject( "Excel.Application") funktionieren.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln