enter image description here Ich versuche, eine VBA zu erstellen, die prüfen wird, ob eine Spalte alle Werte als "Null" (String-Wert) nicht leer oder leer hat, wenn es " Null "String value" löscht die gesamte Spalte. Ich kann For-Schleife verwenden, um alle Werte in Zellen zu durchlaufen, aber es ist zeitaufwendig. Ich suche nach einer Option, um AutoFilter oder Find-Befehl zu verwenden. Irgendwelche Vorschläge würden geschätzt. Danke.VBA löschen Excel-Spalte, wenn gesamte Spalte Daten ist "Null"
0
A
Antwort
0
So etwas wie
Dim col as Range
For Each col In UsedRange.Columns
If col.Find("*") Is Nothing Then
col.EntireColumn.Delete
End If
Next
aktualisieren
Ich glaube nicht, können Sie mit "Null" Zellenwerte in Excel haben. Ich habe versucht, diese
Dim cell As Range
Set cell = Range("A1")
cell.Value = "" ' cell.Value2 shows as "Empty" in the Locals window
cell.Value = Empty ' cell.Value2 still "Empty"
cell.Value = Nothing ' this gives "Run-time error '1004': Application-defined or object-defined Error"
Update 2
Ein weiterer langsamer Weg
Dim col as Range, blanks as Range
For Each col In UsedRange.Columns
Set blanks = col.SpecialCells(xlCellTypeBlanks) ' gives error if no blank cells in the col range
If blanks.Cells.Count = col.Cells.Count Then
col.EntireColumn.Delete
End If
Next
Update 3
alle leeren Zellen in der Spalte zu finden sein können Sie WorksheetFunction.CountIf(col, "Null")
verwenden können um die Anzahl der "Null" -Zellen zu zählen
Dim col As Range
For Each col In UsedRange.Columns
'NullCount = WorksheetFunction.CountIf(col, "Null")
'NotNullCount = WorksheetFunction.CountIf(col, "<>Null")
'blanksCount = WorksheetFunction.CountBlank(col)
'nonBlanksCount = WorksheetFunction.CountA(col)
With WorksheetFunction
If .CountA(col) = .CountIf(col, "Null") + 1 Then ' 1 for the column header cell
col.EntireColumn.Delete
End If
End With
Next
2
in dem Arbeitsblatt die Formel:
=COUNTBLANK(A:A)
werden 1.048.576 zurück, wenn alle Zellen in dieser Spalte entweder NULL oder völlig leer sind. Das können wir im Makro nutzen:
Sub KolumnKiller()
With Application.WorksheetFunction
For i = Columns.Count To 1 Step -1
If .CountBlank(Columns(i)) <> Rows.Count Then Exit For
Next i
For j = i To 1 Step -1
If .CountBlank(Columns(j)) = Rows.Count Then
Columns(j).Delete
End If
Next j
End With
End Sub
Die erste Schleife findet einen guten Startplatz für die zweite Schleife.
Verwandte Themen
- 1. Excel VBA- Löschen Zeilen wo Spalte Daten ist ZERO
- 2. DynamicReports entfernen Zeile, wenn Spalte Null ist
- 3. Spalte Grenzen die gesamte Tabelle, auch wenn nicht genügend Daten
- 4. Wenn eine Spalte null dann Daten aus anderen Spalte
- 5. nicht Spalte aktualisieren, wenn Aktualisierungswert null ist
- 6. Slick - Zeile filtern, wenn Spalte Null ist
- 7. Löschen gesamte Spalte mit bestimmten Inhalten in Python Pandas
- 8. Spalte über kopieren, ursprüngliche Spalte mit Excel löschen VBA
- 9. Wählen Sie eine Spalte, wenn die andere Spalte null ist
- 10. Gruppierung, wenn Spalte NULL enthält
- 11. Excel VBA Zeile löschen nicht VBA-Skript
- 12. UPDATE, wenn die Spalte nicht null ist, wenn null dann auf null verlassen
- 13. VBA: Filtern und Löschen von Inhalten in Spalte
- 14. easyui gesamte Spalte hinzufügen
- 15. MIPS, löschen oder null drehen Array-Daten
- 16. if-Anweisung, wenn die Spalte in der DB null ist
- 17. automatisch VBA verketten Spalte aktualisieren, wenn geändert
- 18. Löschen von Zeilen in Excel VBA
- 19. Liniendiagramm Spalte ausblenden Wenn alles Null
- 20. Wert suchen und gesamte Zeile löschen
- 21. VBA zu löschen Vorlage nicht alles löschen?
- 22. SQL Return Null, wenn eine Spalte Null ist (Gegenteil von COALESCE())
- 23. Löschen von Textfeldern, wenn SelectedIndex == null
- 24. Excel VBA Löschen von Zeilen, wenn Zellen Werte enthalten
- 25. Ms Access VBA - Versuchen, Daten aus einem Kombinationsfeld aufzurufen, aber nur wenn ein Feld leer ist
- 26. Excel VBA löschen Subcode
- 27. SQL Schritt Integer-Spalte auch wenn null
- 28. Excel, wenn Spalte größer als Null ist und eine andere Spalte "Competitor" enthält, subtrahiere den Wert einer anderen Spalte um
- 29. SQL Server: Anzeige Spalte, wenn NOT NULL
- 30. Rails ungeschnittene Formularfelder, wenn db Spalte NULL
Slai, danke für deine Antwort. aber ich bin nicht sicher, ob der obige Code finden wird, wenn alle Zellen in der Spalte "Null" String enthalten.Bitte beachten Sie, dass ich nicht nach Null Wert suche. Seine "Null" Zeichenfolge. Entschuldigung, wenn ich das bei meiner Frage verpasst habe. –
Gibt es trotzdem, dass ich Suche, Suche, Match-Befehl für <> (Suchzeichenfolge) verwenden kann. So dass ich nach etwas wie "<> Null" in der Spalte suchen und löschen kann, wenn nicht gefunden. –
Nicht wirklich. Sie können Home> Suchen und Auswählen> Konstanten oder Formeln – Slai