Registriert seit: 01.02.2016
Version(en): 2010
Hallo liebe Freunde,
ich habe folgendes Problem mit meinem Code. Wenn eine Zelle in Spalte 2 leer ist, möchte ich diese Zelle löschen, wobei die darunter stehenden Inhalte nachrücken sollen. So weit so gut.
Warum erscheint bei meinem Code ganz unten immer #NV und wie bekomme ich das weg?
Code:
Sub ZelleLöschenB()
Dim vbSpalte2 As Variant
If Cells(ActiveCell.Row, 2) = "" Then
vbSpalte2 = Range("B" & ActiveCell.Row + 1 & ":B" & Cells(Rows.Count, 2).End(xlUp).Row)
Range("B" & ActiveCell.Row & ":B" & Cells(Rows.Count, 2).End(xlUp).Row) = vbSpalte2
End If
End Sub
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
06.02.2016, 19:46
(Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2016, 19:53 von Kuwer.)
Hallo Algor,
das liegt daran, dass
vbSpalte2 eine Zeile weniger ist als der Bereich, auf den zurückgeschrieben werden soll.
So sollte es gehen:
vbSpalte2 = Range("B" & ActiveCell.Row + 1 & ":B" & Cells(Rows.Count, 2).End(xlUp).Row + 1)Aber für diesen konkreten Fall würde auch das genügen:
Sub ZelleLöschenB()
If Cells(ActiveCell.Row, 2) = "" Then
Cells(ActiveCell.Row, 2).Delete Shift:=xlUp
End If
End Sub
Gruß Uwe
Registriert seit: 28.05.2014
Version(en): 2013 / 2016
06.02.2016, 19:50
(Dieser Beitrag wurde zuletzt bearbeitet: 06.02.2016, 19:51 von GMG-CC.)
... zu spät, Uwe war schneller;darum gelöscht (muss ja nich alles doppelt gemoppelt sein ...)
Beste Grüße
Günther
Excel-ist-sexy.de …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Registriert seit: 01.02.2016
Version(en): 2010
Hallo Uwe,
genau das war es. Danke. Habe noch mal eine Frage. Ich schreibe den Inhalt deshalb in vbSpalte2, weil unterhalb der
zu löschenden Zeile sehr sehr viele Zellen mit Inhalt stehen. Statt leere Zelle löschen habe ich auch den entsprechenden
Code dafür geschrieben eine leere Zelle einzufügen. Wenn man mit großen Datenmengen auf dem Tabellenblatt arbeitet
habe ich festgestellt, dass der Einsatz von Feldern am besten funktioniert. Gibt es Alternativen?
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Algor,
Du hast mit der Verwendung einer Feldvariablen schon die schnellste Variante.
Es gibt keinen Grund, eine andere zu benutzen. Meine "Alternative" ist zwar kürzer, aber langsamer.
Gruß Uwe