My Spalte A hat Werte wie kat1 kat2 leer KAT3 ich das Programm möchte die leere Zelle und verwenden KAT3 wie die Zelle die letzte Zeile (lRow) einzustellen, um im wesentlichen zu überspringen. Der Code, den ich verwende, ist wie unten zu sehen. Unten ist der überarbeitete Code:Wie überspringe ich eine leere Zelle in einer Spalte?
Private Sub txt_BPName1_Exit(ByVal cancel As MSForms.ReturnBoolean)
Dim ws As Worksheet
Dim Lrow As Long
Dim c As Range, rng As Range
Set ws = ThisWorkbook.Sheets("Sheet1")
With ws
Lrow = .Range("A" & .Rows.Count).End(xlUp).row
'Lrow = .Range("A" & .Rows.Count, 1).End(xlUp).Select
'Lrow = .Range("A65536").End(xlUp).row + 1
Set rng = .Range("A2:A" & Lrow)
End With
For Each c In rng
If c.Value = txt_BPName1 And c.Value <> "" Then
MsgBox "Cell " & c.Address & " Duplicate Found."
cancel = True
Exit Sub
End If
Next
MsgBox ("Base Product is not duplicate,Ok to Add")
Cells(Lrow + 1, 1).Value = txt_BPName1.Text
txt_BPName1.Text = ""
ActiveCell.Offset(1, 0).Select
End Sub
Der Wert wird immer in leere Zelle statt einer darunter eingetragen.
Was mit 'lRow = .Range falsch ("A" & .Rows.Count) .End (xlUp) .row'? – findwindow
Der Fehler liegt daran, dass Sie ".Select" verwenden, nachdem Sie versucht haben, es auf eine Variable zu setzen. Schalten Sie das stattdessen mit '.Row 'um. Aber das ist vielleicht nicht (wahrscheinlich nicht) die Lösung für Ihr Gesamtproblem ... Das ist nur der Grund, warum dieser Fehler für Sie passiert. Sie könnten versuchen, 'Wenn c.Value = txt_BPName1 und c.Value <>" "Dann" – BruceWayne