2016-07-25 5 views
0
Sub Filter_empty_Rows() 

Dim Row_nr As Integer 

With Worksheets("Boutenlijst Kist B") 

For Row_nr = 3 To 1009 
    If Cells(Row_nr, 4).Value = "" Then 
     Cells(Row_nr, 4).EntireRow.Hidden = True 
    End If 
Next Row_nr 

End With 

End Sub 

Dies sollte alle Zeilen ausblenden, die leere Zellen in Spalte D enthalten. Aber das tut es nicht. Weil die leeren Zellen immer noch mit einem anderen Blatt verbunden sind. Es gibt also keinen wirklichen Wert, aber es ist auch nicht leer.Filtern verknüpfter, aber leerer Zellen

Wer hat einen Workaround?

+0

Was erscheint in der Zelle, in der sich die Verbindung befindet, wo sich in der abhängigen Zelle keine Daten befinden? –

+0

Im Blatt sind beide leer. Quellzelle ist in Formel/Wert-Ebene leer. Abhängige Zelle hat die in der Formel/Werte-Ebene erwähnte Referenz. – B33ks

+0

Rechts. Wenn ich also '= Sheet2! A1' in Sheet1-Zelle A1 und Sheet2-Al leer gebe, gibt es eine '0' in Sheet1-Zelle A1 zurück. Also sagst du die Art und Weise, wie du Zelle, die enthält buchstäblich eine leere zurückgibt? –

Antwort

0

Wenn eine Zelle eine Referenz auf eine andere Zelle enthält und diese Zelle keinen Wert hat, wird der Wert des Werts dieser Zelle durch Excel auf 0 gesetzt. Also, wenn Sie eine Möglichkeit tun wollen würde es

If Cells(Row_nr, 4).Value = "" Or Cells(Row_nr, 4).Value = 0 Then 

Wenn einige Ihrer Daten zu tun sein wird, sein werde wirklich Null ist, dann könnte es ein wenig schwieriger sein. Sie können .Range.HasFormula verwenden, um zu sehen, ob es eine Formel enthält oder nicht, und diese verwenden, um zu entscheiden, ob es sich um ein schlechtes Stück Daten handelt oder nicht.

Wenn das nicht gut genug ist, dann können Sie .Range.Formula verwenden, um die tatsächliche Formel in einer Zelle zu erhalten und diese dann für die Analyse zu verwenden, die Sie benötigen.