2017-04-13 6 views
1

Ich habe ein Benutzerformular für die Dateneingabe erstellt. Ich versuche nun, dies zu erweitern, um Daten zu untersuchen, die bereits eingegeben wurden, wo einige Daten fehlen könnten, und um die Werte innerhalb dieser Zeile zu aktualisieren.Suchen und Aktualisieren von Werten in einer Zeile mit einem Benutzerformular

Das Suchkriterium ist eine Referenznummer, die in der Tabelle in Spalte A enthalten ist. Der Code gibt jedoch die Meldung zurück, dass die ID nicht gefunden wurde.

Dim searchRange As Range 
Dim foundCell As Range 
Dim mysearch As String 

mysearch = Me.Reference.Value 

Set searchRange = ThisWorkbook.Sheets("Master Data").Range("A2").End(xlDown) 
Set foundCell = searchRange.Find(what:=mysearch, after:=searchRange.Cells(searchRange.Cells.Count)) 

If Not foundCell Is Nothing Then 
    If foundCell.Offset(0, 1).Value = Me.Reference.Value Then 
     foundCell.Offset(0, 8).Value = Me.Merchant.Value 
    Else 
     MsgBox "Name does not exist." 
    End If 
Else 
    MsgBox "ID does not exist." 
End If 

Antwort

3

Versuchen Sie dies, Ihre searchRange wie definiert ist nur eine einzelne Zelle, die ich vermute, ist nicht das, was Sie vorhatten. Ich habe auch ein paar der Find-Parameter angegeben, nur für den Fall, dass sie nicht das sind, was Sie angenommen haben.

Sub x() 

Dim searchRange As Range 
Dim foundCell As Range 
Dim mysearch As String 

mysearch = Me.Reference.Value 

With ThisWorkbook.Sheets("Master Data") 
    Set searchRange = .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) 
End With   

Set foundCell = searchRange.Find(what:=mysearch, Lookat:=xlwhole, MatchCase:=False, SearchFormat:=False) 
If Not foundCell Is Nothing Then 
    If foundCell.Offset(0, 1).Value = Me.Reference.Value Then 
     foundCell.Offset(0, 8).Value = Me.Merchant.Value 
    Else 
     MsgBox "Name does not exist." 
    End If 
Else 
    MsgBox "ID does not exist." 
End If 

End Sub 
+1

Schön, aber es gibt keine Notwendigkeit, den gesamten Code in 'Mit ThisWorkbook.Sheets („Stammdaten“)', nur 'Set searchRange' zu ​​wickeln, –

+2

@ShaiRado - danke, ich habe bewegte nun das Ende . (Bitte beachten Sie den Punkt vor 'rows.count' - ich versuche mich zu erinnern!) – SJR

+1

Wir sind alle hier, um unsere VBA zu verbessern und zu verbessern, es gibt so viele gute Leute hier in der Gegend –

Verwandte Themen