Was ist der Unterschied zwischen .Value="" und .ClearContents?

9

Wenn ich den folgenden Code ausführen

%Vor%

Wenn ich Zellen (1, 1) und Zellen (2, 1) mit der Formel ISBLANK() überprüfe, geben beide Ergebnisse TRUE zurück. Ich frage mich also:

  

Was ist der Unterschied zwischen Cells( , ).Value = "" und Cells( , ).ClearContents ?

Sind sie im Wesentlichen gleich?

Wenn ich dann den folgenden Code ausführen, um den Zeitunterschied zwischen den Methoden zu testen:

%Vor%

Ich bekomme folgende Ausgabe zur Laufzeit auf meinem Rechner

%Vor%

Aufgrund dieser Ergebnisse sehen wir, dass die Methode .Value = "" im Durchschnitt schneller ist als .ClearContents . Trifft das überhaupt zu? Warum so?

    
Anastasiya-Romanova 秀 19.07.2016, 10:05
quelle

2 Antworten

1

Nach dem, was ich gefunden habe, wenn es Ihr Ziel ist, eine leere Zelle einfach zu haben, und Sie nichts an der Formatierung ändern wollen, sollten Sie Value = vbNullString als das effizienteste verwenden.

Der 'ClearContents' prüft und ändert andere Eigenschaften in der Zelle wie Formatierung und Formel (was technisch eine separate Eigenschaft als Value ist). Wenn Sie Value="" verwenden, ändern Sie nur eine Eigenschaft und so ist es schneller. Wenn vbNullString den Compiler, der eine leere Zeichenfolge verwendet, mit umgekehrten Anführungszeichen auffordert, wird eine allgemeine Zeichenfolge erwartet. Da vbNullString eine leere Zeichenfolge erwartet, kann es einige Schritte überspringen und Sie erhalten eine Leistungssteigerung.

    
NPComplete 19.07.2016 14:46
quelle
-1

Sie können einen großen Unterschied in der Excel-Tabelle feststellen.

Nehmen Sie an, dass B1 durch Gleichung gefüllt ist, wird leer zurückgegeben A1 = 5 B1="= wenn (A1 = 5," "," x ")

In diesem Fall müssen Sie Gleichungen, die Sie in C1 schreiben können (1) C1 = & lt; = iblank (B1) & gt; (2) C1 =

Lösung 1 wird false zurückgeben, da die Zelle mit Gleichung gefüllt ist Lösung 2 wird True

zurückgeben     
Ahmed AbdelKhalek 12.12.2016 08:59
quelle