2017-06-26 2 views
0

Es scheint wie "application.worksheetfunction.CountA (Bereich) = 0" funktioniert für alle außer mir, um zu überprüfen, ob ein Bereich leer ist.überprüfen, ob ein Bereich leer ist mit Excel VBA

Ich öffnete ein neues Excel-Blatt und legte 23 in E2. Das ist alles was ich getan habe. Und unten ist der Code, mit dem ich die Methode getestet habe.

Ich habe 156 statt 0 von der ersten msgbox und 197 von der zweiten msgbox.

Irgendeine Idee warum?

Danke.

+2

Ist die neue Excel-Tabelle definitiv Sheet1? Dies ist eine ganz neue Arbeitsmappe? – jamheadart

+1

^^ und Ihr Code erwartet, dass das Blatt einen 'CodeName' von' Sheet1' hat, nicht nur ein 'Name' von' "Sheet1" '. – YowE3K

+0

Hatten Sie andere Excel-Dateien gleichzeitig geöffnet? Wenn ja, in welches Modul hast du den Code eingefügt und in welches ** VBAProject **? (oberer linker Bereich) Versuchen Sie es noch einmal, nachdem Sie Excel vollständig geschlossen und nur eine Datei geöffnet haben –

Antwort

0

Um diese Art von Problemen zu vermeiden, beziehen Sie sich nicht auf Arbeitsblätter mit ihrem CodeName (Sheet1). Stattdessen Referenzen mit Arbeitsblattnamen machen:

Dim ws As Worksheet 
Set ws = ThisWorkbook.Worksheets("MySheet") 
MsgBox Application.WorksheetFunction.CountA(ws.Columns("A:D"))