2016-04-18 5 views
0

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.

+1

Was mit 'lRow = .Range falsch ("A" & .Rows.Count) .End (xlUp) .row'? – findwindow

+0

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

Antwort

1

Fügen Sie einfach eine if-Anweisung in der Schleife

For Each c In rng 
    If not "" = c.Value Then 
+0

Ich würde das umdrehen, um es ein wenig intuitiver zu machen, 'Wenn c.Value <>" "Dann ...' Anders als "Wenn nicht leer ist C-Wert" vs. "Wenn c-Wert nicht leer ist, dann" – BruceWayne

+0

@ Abhi0609 - Können Sie stattdessen diesen Kommentar in Ihrem OP bearbeiten? Es ist schwer Code in den Kommentaren zu lesen. – BruceWayne

+0

@ Bruce Wayne: OP bearbeitet. – Abhi0609

Verwandte Themen