Hallo Wissende,
Excelfunktionen kann man in Vba auf zwei Wegen benutzen:
Application.Worksheetfunction.Sum(…)
Oder
Application.Sum(…)
Ich hatte früher die erste Variante benutzt. Dann las ich irgendwann/irgendwo daß dies in manchen Fällen zu Problemen führen kann.
Leider habe ich die Begründung bzw. die Art der Probleme vergessen.
Seitdem benutze ich die zweite Variante. Bislang traten damit keine Probleme auf.
Einzig fällt mir auf daß dann die Intellisense nicht klappt, aber das ist vernachlässigbar *find*
Weiß hier jmd. Gründe die für oder gegen die eine oder die andere Variante sprechen?
Gruß
Reinhard
Hallo Reinhard
Weiß hier jmd. Gründe die für oder gegen die eine oder die
andere Variante sprechen?
Es ist umgekehrt: Die Variante mit „WorksheetFunction“ ist die neuere (seit 97), aus Kompatibilitätsgründen funktioniert die alte noch. Das wird aber irgendwann vorbei sein, das ist das Problem dabei. (Tatsächlich ist es bei mir aber so, dass eher die Variante „mit“ ab und zu Zicken macht.)
Gruß
smalbop
Hallo Wissende,
Excelfunktionen kann man in Vba auf zwei Wegen benutzen:
Application.Worksheetfunction.Sum(…)
Oder
Application.Sum(…)
Difference between
Application.WorksheetFunction.Sum
and
Application.Sum
They are pretty much exactly the same. However, using worksheetfunction, if it errors, your code actually stops and debugs. If you don’t put in WorksheetFunction, The result will still be an error, but the code will not stop and debug. Also, if you don’t use worksheetfunction, you don’t get the little screen tip listing available functions as you type.
Es ist umgekehrt: Die Variante mit „WorksheetFunction“
ist die neuere (seit 97), aus Kompatibilitätsgründen
funktioniert die alte noch. Das wird aber irgendwann vorbei
sein, das ist das Problem dabei.
das ist wohl deine wunschvorstellung von der welt ?
Das Problem ist die verarbeitung nicht deine kompatibilität .
Nu wenn ich vorher nur Aplications hatte dort eine summe und nun worksheets habe und dort auch nochmal sum hinzufüge , wird bestimmt nicht die globale funktion aufgelöst, die global überall gebraucht werden könnte auch wo es keine worksheet gibt.
OT^2: Mit oder ohne Worksheetfunction?
Es ist umgekehrt: Die Variante mit „WorksheetFunction“
ist die neuere (seit 97), aus Kompatibilitätsgründen
funktioniert die alte noch. Das wird aber irgendwann vorbei
btw, das würde ja seiner anfangsvermutung wiedersprechen, das er Application.Sum nutzt , weil die ja bald endet lol.
Naja versuchw ars wert gell
Hallo Smalbop,
Weiß hier jmd. Gründe die für oder gegen die eine oder die
andere Variante sprechen?
Es ist umgekehrt:
jain. Für mich nicht. Als ich vor zehn Jahren Excel dann später Excel-Vba kennenlernte gewöhnte ich mir mit Worksheetfunction an.
Bis ich halt mal was las, danach ließ ich es weg.
Die Variante mit „WorksheetFunction“
ist die neuere (seit 97), aus Kompatibilitätsgründen
funktioniert die alte noch. Das wird aber irgendwann vorbei
sein, das ist das Problem dabei.
Ups, in XL2007 bzw. XL2010 geht es nicht mehr „ohne“?
(Tatsächlich ist es
bei mir aber so, dass eher die Variante „mit“ ab und zu Zicken
macht.)
Aha, das bestätigt ja was ich damals las, kannst du beschreiben welche Zicken?
Gruß
Reinhard
They are pretty much exactly the same. However, using
worksheetfunction, if it errors, your code actually stops and
debugs. If you don’t put in WorksheetFunction, The result will
still be an error, but the code will not stop and debug. Also,
if you don’t use worksheetfunction, you don’t get the little
screen tip listing available functions as you type.
Hallo Rakon,
mein Englisch ist nicht gut. Ich schreib mal was ich verstanden habe.
Sie sind prächtig das Gleiche.
Wie auch immer, bei Benutzung von Worksheetsfunction stoppt der Code bei einem Fehler und der Debugger kommt.
Benutzt man es nicht, ist ein Fehler immer noch ein Fehler aber der Code stoppt nicht.
Wenn man worksheetsfunction nicht benutzt fehlt die Intellisense.
Jetzt würde ich da sehr gerne wissen um welche Fehler es da geht?
Denn auch wenn ich Worksheetfunction weglasse und bei der Excelfunktion kommt ein Fehler, so kommt er, samt Debugger.
Gruß
Reinhard
Hallo Reinhard
Die Variante mit „WorksheetFunction“
ist die neuere (seit 97), aus Kompatibilitätsgründen
funktioniert die alte noch. Das wird aber irgendwann vorbei
sein, das ist das Problem dabei.
Ups, in XL2007 bzw. XL2010 geht es nicht mehr „ohne“?
Kann ich jetzt nicht testen, bin grade am falschen Rechner.
(Tatsächlich ist es
bei mir aber so, dass eher die Variante „mit“ ab und zu Zicken
macht.)
Aha, das bestätigt ja was ich damals las, kannst du
beschreiben welche Zicken?
Unter Excel 2003 SP3, mit dem ich standardmäßig noch arbeite, wird halt der Programmcode mal reibungslos ausgeführt oder auch ab und zu nicht an der betreffenden Stelle, so eine richtig durchgängige „Systematik“ ist da nicht erkennbar.
Gruß
smalbop
Hallo Reinhard
mein Englisch ist nicht gut. Ich schreib mal was ich
verstanden habe.
Sie sind prächtig das Gleiche.
Wie auch immer, bei Benutzung von Worksheetsfunction stoppt
der Code bei einem Fehler und der Debugger kommt.
Benutzt man es nicht, ist ein Fehler immer noch ein Fehler
aber der Code stoppt nicht.
Wenn man worksheetsfunction nicht benutzt fehlt die
Intellisense.
Herrlich! Ist das vom Babelfisch übersetzt? Das parodiert ja das autistische RakonDark-Gestammel fast perfekt! 
Gruß
smalbop
mein Englisch ist nicht gut. Ich schreib mal was ich
verstanden habe.
Sie sind prächtig das Gleiche.
Wie auch immer, bei Benutzung von Worksheetsfunction stoppt
der Code bei einem Fehler und der Debugger kommt.
Benutzt man es nicht, ist ein Fehler immer noch ein Fehler
aber der Code stoppt nicht.
Wenn man worksheetsfunction nicht benutzt fehlt die
Intellisense.
Herrlich! Ist das vom Babelfisch übersetzt?
Hallo Smalbop,
ähem, nein. Ist meine Übersetzung.
Besser kann ich halt nicht Englisch.
Gruß
Reinhard
They are pretty much exactly the same. However, using
worksheetfunction, if it errors, your code actually stops and
debugs. If you don’t put in WorksheetFunction, The result will
still be an error, but the code will not stop and debug. Also,
if you don’t use worksheetfunction, you don’t get the little
screen tip listing available functions as you type.
Hallo Rakon,
mein Englisch ist nicht gut. Ich schreib mal was ich
verstanden habe.
Es geht darum, das die eine funktion im objekt application ausgeführt wird und die andere im objekt worksheet
Daraus ergibt sich,wenn ein fehler bei SUM auftritt (weil z.b. felder flasches format haben etc) dann wird beim apllication object eben nicht das worksheet angehalten und in den debug modus gegangen, sondern wie auch immer in einer exception abgefangen oder ganz ignoriert (hab ich noch nicht so getestet).
Daraus folgt , das wenn man genaus diesen stop haben will man aufjedenfall die Worksheetfunktionnehmen sollte. Will man aber genau den fehler ignorieren und dennoch weitermachen dann wäre das application object das bessere. Im zweifelsfall schlieest di application und landet nicht im debug („was auch anwender verwirren kann“).
es fehlte noch der letzte satz
don’t use worksheetfunction, you don’t get the little screen tip listing available functions as you type.
und wie aber schon der frager festgestellt hat, die screen tips funktion sind nicht verfügbar.
Es geht darum, das die eine funktion im objekt application
ausgeführt wird und die andere im objekt worksheet
Daraus ergibt sich,wenn ein fehler bei SUM auftritt (weil z.b.
felder flasches format haben etc) dann wird beim apllication
object eben nicht das worksheet angehalten und in den debug
modus gegangen, sondern wie auch immer in einer exception
abgefangen oder ganz ignoriert (hab ich noch nicht so
getestet).
Daraus folgt , das wenn man genaus diesen stop haben will man
aufjedenfall die Worksheetfunktionnehmen sollte. Will man aber
genau den fehler ignorieren und dennoch weitermachen dann wäre
das application object das bessere. Im zweifelsfall schlieest
di application und landet nicht im debug („was auch anwender
verwirren kann“).
Hallo Rakon,
ich bedanke mich für Aufklärung.
Gruß
Reinhard