2012-11-13 27 views

Odpowiedz

10

This witryna wykorzystuje metodę isEmpty().

Edytuj: treść pobrana z witryny, zanim adres URL będzie nieprawidłowy.

Worksheets("Sheet1").Range("A1").Sort _ 
    key1:=Worksheets("Sheet1").Range("A1") 
Set currentCell = Worksheets("Sheet1").Range("A1") 
Do While Not IsEmpty(currentCell) 
    Set nextCell = currentCell.Offset(1, 0) 
    If nextCell.Value = currentCell.Value Then 
     currentCell.EntireRow.Delete 
    End If 
    Set currentCell = nextCell 
Loop 

W pierwszym kroku sortowane będą dane w pierwszej kolumnie z arkusza1. W drugim kroku wszystkie wiersze z tymi samymi danymi zostaną usunięte.

42

Można użyć IsEmpty() funkcję tak:

... 
Set rRng = Sheet1.Range("A10") 
If IsEmpty(rRng.Value) Then ... 

Można także użyć następującej:

If ActiveCell.Value = vbNullString Then ... 

Nie jestem programistą VBA, więc nie przeszkadza ?!

nadzieję, że pomoże

+4

dasz isEmpty() zakres, a nie wartości. Zwraca true lub false, więc potrzebujesz instrukcji "if". Musisz napisać: Jeśli IsEmpty (rRng) następnie ... mam edycję i korygowanie odpowiedź – pashute

+2

Zauważ, że 'Jeśli ActiveCell.Value = vbNullString' zawiedzie w przypadku, gdy komórka zawiera błąd taki jak # N/A! Lepiej używać IsEmpty (rRang) – jeffreyweir

+0

@pashute Przesłałem poprawkę do tej odpowiedzi, aby dołączyć informacje, które wymieniliście. –

20

IsEmpty() byłby najszybszym sposobem na sprawdzenie tego.

IsNull() wydaje się podobnym rozwiązaniem, ale należy pamiętać, że do komórki należy przypisać wartość Null; nie jest z natury stworzony w komórce.

Ponadto, można sprawdzić przez komórkę:

count()

counta()

Len(range("BCell").Value) = 0

Powiązane problemy