2016-06-01 14 views
1

Update-Schaltfläche funktioniert, wenn in Zellen neben der Zielzelle Wert ist das Problem in diesem Code nicht finden.Excel VBA-Benutzerformular-Update-Schaltfläche

Private Sub CommandButton3_Click() 
Dim irow As Long, _ 
wS As Worksheet, _ 
NextRow As Long, _ 
cF As Range 
Set wS = Worksheets("stock") 
With wS 
    With .Range("A:A") 

     Set cF = .Find(What:=Me.ComboBox2.value, _ 
       After:=.Cells(1, 1), _ 
       LookIn:=xlValues, _ 
       LookAt:=xlWhole, _ 
       SearchOrder:=xlByRows, _ 
       SearchDirection:=xlNext, _ 
       MatchCase:=False, _ 
       SearchFormat:=False) 
    End With 

If Not cF Is Nothing Then 
    If cF.Offset(0, 1) <> vbNullString Then 
     Set cF = cF.End(xlToRight).Offset(0, 25) 
     cF.value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
    End If 
Else 
    .Cells(cF.row, "AA").value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
End If 

End With End Sub

wenn Zielzelle AA2 ist dann sollte es Wert in Z2 oder B2 sein sonst nichts passiert.

Just added ELSE-Anweisung aber mit sonst seiner Aktualisierung Wert in Spalte AB nicht in AA

form

+0

Ich bin nicht Experte, aber ich denke, Ihre Bedingung oder etwas in IF-Code zu tun –

+0

Ich sehe zwei 'mit', aber nur ein' Ende mit' Anweisungen –

+0

Ihr Code ist speziell festgelegt, um nicht zu aktualisieren, wenn die Zelle neben der Zielzelle leer ist: ' Wenn cF.Offs et (0, 1) <> vbNullString Then ', also müssen Sie entweder eine' Else'-Anweisung hinzufügen oder diese Bedingung entfernen. – tigeravatar

Antwort

0

Ich habe das nur auf Basis von Versuch Hit n und es funktioniert

`Private Sub CommandButton3_Click() 
    Dim irow As Long, _ 
    wS As Worksheet, _ 
    NextRow As Long, _ 
    cF As Range 
    Set wS = Worksheets("stock") 
    With wS 
    With .Range("A:A") 

    Set cF = .Find(What:=Me.ComboBox2.value, _ 
      After:=.Cells(1, 1), _ 
      LookIn:=xlValues, _ 
      LookAt:=xlWhole, _ 
      SearchOrder:=xlByRows, _ 
      SearchDirection:=xlNext, _ 
      MatchCase:=False, _ 
      SearchFormat:=False) 

.Cells(cF.row, "AA").value = Me.TextBox2.value + .Cells(cF.row, "AA").value 
End With 
End Sub` 
+1

, soweit es funktioniert. Danke –

Verwandte Themen