___ answer128138 ___
%Vor%

Wikipedia für mehr ... Ссылка

    
___ answer128105 ___
%Vor%

Ich habe diese Funktion ursprünglich von der großartigen Excel-Seite von Chip Pearson erhalten.

Pearsons Website

    
___ qstntxt ___

Was ist eine gute Implementierung einer IsLeapYear-Funktion in VBA?

Bearbeiten: Ich habe die if-then und die DateSerial-Implementierung mit Iterationen in einem Timer ausgeführt und die DateSerial war im Durchschnitt 1-2 ms schneller (5 Läufe von 300 Iterationen mit 1 durchschnittliche Zellenarbeitsblattformel funktioniert auch).

    
___ answer6978005 ___

Als eine Variante der Chip Pearson-Lösung könnten Sie auch

ausprobieren %Vor%     
___ answer130093 ___

Wenn Effizienz eine Überlegung ist und das erwartete Jahr zufällig ist, dann könnte es etwas besser sein, zuerst den häufigsten Fall zu machen:

%Vor%     
___ answer130864 ___

Ich fand dieses lustige auf CodeToad :

%Vor%

Obwohl ich ziemlich sicher bin, dass die Verwendung von IsDate in einer Funktion wahrscheinlich langsamer ist als ein paar if, elseifs.

    
___ answer19068554 ___
%Vor%     
___ answer25376739 ___
%Vor%     
___ tag123excel ___ Nur für Fragen zur Programmierung von Excel-Objekten oder -Dateien oder zur Entwicklung komplexer Formeln. Sie können das Excel-Tag mit VBA, VSTO, C #, VB.NET, PowerShell, OLE-Automatisierung und anderen programmierbezogenen Tags und Fragen kombinieren, falls zutreffend. Allgemeine Hilfe zu MS Excel für einzelne Arbeitsblattfunktionen ist bei Super User verfügbar. ___ tag123function ___ Eine Funktion (auch als Prozedur, Methode, Unterroutine oder Routine bezeichnet) ist ein Teil des Codes, der dazu bestimmt ist, eine einzelne, spezifische Aufgabe auszuführen. Verwenden Sie dieses Tag für Fragen, die speziell das Erstellen oder Aufrufen von Funktionen betreffen. Wenn Sie Hilfe beim Implementieren einer Funktion zum Ausführen einer Aufgabe benötigen, verwenden Sie stattdessen [algorithm] oder ein aufgabenspezifisches Tag. ___ tag123vba ___ Visual Basic für Applikationen (VBA) ist eine ereignisgesteuerte, objektorientierte Programmiersprache zum Schreiben von Makros, die für die gesamte Office-Suite und andere Anwendungen verwendet wird. VBA entspricht nicht VB.NET oder VBS; Wenn Sie in Visual Studio arbeiten, verwenden Sie [vb.net]. Wenn sich Ihre Frage speziell auf die Programmierung einer MS Office-Anwendung bezieht, verwenden Sie auch das entsprechende Tag: [Excel-VBA], [Zugriff-VBA], [Word-VBA], [Outlook-VBA] oder [Microsoft-Project-VBA] . ___ answer33808939 ___

Hier ist eine weitere einfache Option.

%Vor%

Wenn Leap_Day_Check = 28, dann ist es kein Schaltjahr, wenn es 29 ist.

VBA weiß, was das Datum vor dem 1. März in einem Jahr ist und wird es daher für den 28. oder 29. Februar für uns festlegen.

    
___ tag123excelvba ___ Excel-VBA (Visual Basic für Applikationen für Microsoft Excel) ist die vorherrschende Programmiersprache für Microsoft Office Excel. Es ist eine ereignisgesteuerte und objektorientierte Programmiersprache zum Schreiben von Makros für Microsoft Office-Anwendungen wie Excel. Verwenden Sie diesen TAG NICHT für VB.NET Fragen. ___ tag123codesnippets ___ Bei Problemen mit der Erstellung, Verwendung und Wartung von Code-Snippets. Wie finden Sie Leapyear in VBA? ___ answer43382759 ___

Ich sehe viele großartige Konzepte, die auf zusätzliches Verständnis hinweisen und die Verwendung von Datumsfunktionen, von denen man großartig lernen kann ... In Bezug auf Code-Effizienz ..  Betrachten Sie den Maschinencode, der für die Ausführung einer Funktion erforderlich ist

anstelle komplexer Datumsfunktionen verwende nur ziemlich schnelle Integer-Funktionen BASIC wurde auf GOTO gebaut Ich vermute, dass etwas wie unten ist schneller

%Vor%

Nein:

%Vor%     
___

8

Was ist eine gute Implementierung einer IsLeapYear-Funktion in VBA?

Bearbeiten: Ich habe die if-then und die DateSerial-Implementierung mit Iterationen in einem Timer ausgeführt und die DateSerial war im Durchschnitt 1-2 ms schneller (5 Läufe von 300 Iterationen mit 1 durchschnittliche Zellenarbeitsblattformel funktioniert auch).

    
Lance Roberts 24.09.2008, 16:10
quelle

9 Antworten

16
%Vor%

Ich habe diese Funktion ursprünglich von der großartigen Excel-Seite von Chip Pearson erhalten.

Pearsons Website

    
Lance Roberts 24.09.2008, 16:10
quelle
11
%Vor%

Wikipedia für mehr ... Ссылка

    
seanyboy 24.09.2008 16:16
quelle
5

Wenn Effizienz eine Überlegung ist und das erwartete Jahr zufällig ist, dann könnte es etwas besser sein, zuerst den häufigsten Fall zu machen:

%Vor%     
Brent.Longborough 24.09.2008 21:28
quelle
2

Als eine Variante der Chip Pearson-Lösung könnten Sie auch

ausprobieren %Vor%     
RonnieDickson 08.08.2011 05:15
quelle
2

Ich fand dieses lustige auf CodeToad :

%Vor%

Obwohl ich ziemlich sicher bin, dass die Verwendung von IsDate in einer Funktion wahrscheinlich langsamer ist als ein paar if, elseifs.

    
Pascal Paradis 25.09.2008 00:50
quelle
1
%Vor%     
Bob 28.09.2013 15:30
quelle
1
%Vor%     
Dan 19.08.2014 06:13
quelle
1

Ich sehe viele großartige Konzepte, die auf zusätzliches Verständnis hinweisen und die Verwendung von Datumsfunktionen, von denen man großartig lernen kann ... In Bezug auf Code-Effizienz ..  Betrachten Sie den Maschinencode, der für die Ausführung einer Funktion erforderlich ist

anstelle komplexer Datumsfunktionen verwende nur ziemlich schnelle Integer-Funktionen BASIC wurde auf GOTO gebaut Ich vermute, dass etwas wie unten ist schneller

%Vor%

Nein:

%Vor%     
Harry S 13.04.2017 02:54
quelle
0

Hier ist eine weitere einfache Option.

%Vor%

Wenn Leap_Day_Check = 28, dann ist es kein Schaltjahr, wenn es 29 ist.

VBA weiß, was das Datum vor dem 1. März in einem Jahr ist und wird es daher für den 28. oder 29. Februar für uns festlegen.

    
AndrewJD 19.11.2015 16:10
quelle