![]() |
|
|||||||
| Newsgroup microsoft.public.de.excel Forum microsoft.public.de.excel |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
#1
|
|||
|
|||
|
Hallo,
ich habe ein Problem mit einem Makro was versionsabhängige additive Parameter braucht. Die Zeile SaveAS Filename:=x, FileFormat:=xlCSV ist unter Versionen vor XP/2002 ok und benutzt das Semikolon als Separator. Ab 2002 muss dazu der Paramater Local:=True angegeben werden. Ich kann zwar zur Laufzeit mit .Version steuern, aber das "Local:=..." wird mir schon vorher angemeckert :-(( Was tun??? Cheers Peter Für direkte email rot13 cebBETN-Yrvzra*jro.qr oder entferne ".without-this" aus der Email-To. Danke! |
|
#2
|
|||
|
|||
|
Am Thu, 05 Nov 2009 21:35:32 +0100,schrieb Peter Michel:
hallo, >ich habe ein Problem mit einem Makro was versionsabhängige additive >Parameter braucht. >Die Zeile SaveAS Filename:=x, FileFormat:=xlCSV >ist unter Versionen vor XP/2002 ok und benutzt das Semikolon als >Separator. >Ab 2002 muss dazu der Paramater Local:=True angegeben werden. >Ich kann zwar zur Laufzeit mit .Version steuern, aber das "Local:=..." >wird mir schon vorher angemeckert :-(( >Was tun??? Hilfe zu den Stichwörtern #Const und #If lesen ;-) Sub VersionsabhängigeSpeicherung() 'Hier Version eingeben ab der der Parameter Locale existiert #Const XL_VersionMitLocale = 11 'Wert geraten Dim AppVersion As Double AppVersion = Val(Application.Version) #If AppVersion < XL_VersionMitLocale Then ThisWorkbook.SaveAs Filename:="Test", FileFormat:=xlCSV #Else ThisWorkbook.SaveAs Filename:="testx", _ FileFormat:=xlCSV, Local:=True #End If End Sub Frage an die Mitleser: Warum ergibt #If Val(Application.Version) < XL_VersionMitLocale Then den Fehler "unzulässige Verwendung eines Objekts" mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#3
|
|||
|
|||
|
On 5 Nov., 22:15, Martin Worm <Martin.W...*gmx.eu> wrote:
> Frage an die Mitleser: Warum ergibt > > *#If Val(Application.Version) < XL_VersionMitLocale Then > > den Fehler "unzulässige Verwendung eines Objekts" Weil die bedingte Compilierung statisch ist und nicht zur Laufzeit gesteuert werden kann, d.h. man kann Sie nur zur Entwicklungszeit setzen. Die Lösung für Peter's Problem sind 2 Sub's in der der eigentliche Aufruf zum Speichern drin ist und alle nötigen Parameter übergibt man. Ein "grobes" Beispiel sähe so aus: Andreas. Sub Test() Select Case Val(Application.Version) Case 9 Save2000 Case Else Save2002 End Select End Sub Sub Save2000(FName As String, WB As Workbook) WB.SaveAs Filename:=FName, FileFormat:=xlCSV End Sub Sub Save2002(FName As String, WB As Workbook) WB.SaveAs Filename:=FName, FileFormat:=xlCSV, Local:=True End Sub |
|
#4
|
|||
|
|||
|
Am Fri, 6 Nov 2009 00:16:25 -0800 (PST),schrieb Andreas Killer:
hallo, >Sub Save2002(FName As String, WB As Workbook) > WB.SaveAs Filename:=FName, FileFormat:=xlCSV, Local:=True >End Sub das führt bei meinem XL2000 zu dem Fehler benanntes Argument nicht gefunden ich dachte, die bedingte Kompilierung ist dafür gedacht, sowas zu verhindern. mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#5
|
|||
|
|||
|
Als <news:7m08f5lb8vvulded5mvf1j5305na0v4pb9*4ax.com > ließ
Martin Worm verlautbaren, evtl. nachfolgend zitiert: >> Sub Save2002(FName As String, WB As Workbook) >> WB.SaveAs Filename:=FName, FileFormat:=xlCSV, Local:=True >> End Sub > > das führt bei meinem XL2000 zu dem Fehler > benanntes Argument nicht gefunden > > ich dachte, die bedingte Kompilierung ist dafür gedacht, > sowas zu verhindern. Andreas hat beim Aufruf die Argumentübergabe vergessen. -- Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2 |
|
#6
|
|||
|
|||
|
On 6 Nov., 12:13, "Alexander Wolff" <oo...*gmx.de> wrote:
> Als <news:7m08f5lb8vvulded5mvf1j5305na0v4pb9*4ax.com > ließ > Martin Worm verlautbaren, evtl. nachfolgend zitiert: > >> Sub Save2002(FName As String, WB As Workbook) > >> *WB.SaveAs Filename:=FName, FileFormat:=xlCSV, Local:=True > >> End Sub > > das führt bei meinem XL2000 zu dem Fehler > > benanntes Argument nicht gefunden *Martin: Das ist normal, denn diese sub ist nicht für XL2000 gedacht, passiert bei mir auch. Solange man aber das Projekt nicht kompiliert und diese Sub nicht ausführt läuft der Rest des Codes. > Andreas hat beim Aufruf die Argumentübergabe vergessen. Stimmt, Entschuldigung, waren die Finger wieder mal schneller als der Kopf. :-)) Andreas. Sub Test() Dim FName As String FName = "test.csv" Select Case Val(Application.Version) Case 9 Save2000 FName, ThisWorkbook Case Else Save2002 FName, ThisWorkbook End Select End Sub Sub Save2000(FName As String, WB As Workbook) WB.SaveAs Filename:=FName, FileFormat:=xlCSV End Sub Sub Save2002(FName As String, WB As Workbook) WB.SaveAs Filename:=FName, FileFormat:=xlCSV, Local:=True End Sub |
|
#7
|
|||
|
|||
|
Am Fri, 6 Nov 2009 12:13:50 +0100,schrieb Alexander Wolff:
hallo, >Andreas hat beim Aufruf die Argumentübergabe vergessen. ich dachte nicht, daß man das mißverstehen könnte. Unter XL2000 gibt es keinen benannten Parameter Local und das wird angemeckert. Fehlende Parameter werden mit Argument ist nicht optional angemeckert mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#8
|
|||
|
|||
|
On Thu, 05 Nov 2009 21:35:32 +0100, Peter Michel
<proORGA-Leimen.without-this*web.de> wrote: >Hallo, > >ich habe ein Problem mit einem Makro was versionsabhängige additive >Parameter braucht. >... Hallo Freaks! Super was ihr so baut :-) Also die Version: Private Sub Workbook_Open() Dim I As Long, J As Long With ThisWorkbook.VBProject.VBComponents("Modul1") _ .CodeModule On Error Resume Next I = .ProcBodyLine("SaveAsCSV", 0) If I > 0 Then J = .ProcCountLines("SaveAsCSV", 0) If J > 2 Then .DeleteLines I + 1, J - 2 Select Case Val(Application.Version) Case 9 .InsertLines I + 1, " WB.SaveAs Filename:=FName, " & _ "FileFormat:=xlCSV" Case Else .InsertLines I + 1, " WB.SaveAs Filename:=FName, " & _ "FileFormat:=xlCSV, Local:= True" End Select End If End With End Sub gefällt mir als "alter Assembler-Programmierer" bitmaessig sau gut! Als nun mehr aktiver "C/C++-Programmer" habe ich mich dennoch für diesen entschieden: #If AppVersion > 9 Then ThisWorkbook.SaveAs Filename:="Test", FileFormat:=xlCSV #Else ThisWorkbook.SaveAs Filename:="testx", _ FileFormat:=xlCSV, Local:=True #End If Danke! Super Sache mit Euch 8-)) Cheers Peter Für direkte email rot13 cebBETN-Yrvzra*jro.qr oder entferne ".without-this" aus der Email-To. Danke! |
|
#9
|
|||
|
|||
|
Am Mon, 09 Nov 2009 16:36:47 +0100,schrieb Peter Michel:
hallo, freut mich, wenn wir ;-) dir helfen konnten. Mein Gefühl sagt mir, daß die Zeile > #If AppVersion > 9 Then besser #If AppVersion <= 9 Then lauten würde. Version 9 ist XL2000 und da gibt es Local nicht. > ThisWorkbook.SaveAs Filename:="Test", FileFormat:=xlCSV > #Else > ThisWorkbook.SaveAs Filename:="testx", _ > FileFormat:=xlCSV, Local:=True > #End If mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#10
|
|||
|
|||
|
>Mein Gefühl sagt mir, daß die Zeile
> >> #If AppVersion > 9 Then > >besser > > #If AppVersion <= 9 Then > >lauten würde. > >Version 9 ist XL2000 und da gibt es Local nicht. Ja da hast Du recht! Aber ich hatte mich zu früh gefreut - geht leider nur mit Konstanten! Hatte halt auf so was wie eine Excel-Version Konstante gehofft. Daher habe ich jetzt die Lösung mit den beiden Makros realisiert. Cheers Peter Für direkte email rot13 cebBETN-Yrvzra*jro.qr oder entferne ".without-this" aus der Email-To. Danke! |
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Kompilierung sehr langsamt / CF 3.5 | Jens Tönsing | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 2 | 05-29-2009 02:44 PM |
| Kompilierung 32Bit / 64Bit | Stefan Theobald | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 2 | 04-27-2009 08:58 PM |
| Just-in-time Kompilierung | Rolf1964 | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 0 | 08-15-2008 01:59 PM |
| bedingte kompilierung .Net-Version | Gabor Steingart | Newsgroup de.comp.lang.delphi.misc | 0 | 10-16-2007 12:06 AM |
| Kompilierung schlägt fehl | Erik | Newsgroup de.comp.text.tex | 5 | 09-15-2007 02:33 PM |