2017-09-10 3 views
0

Einige Hilfe bitte - versuchen Sie es einfachaktualisieren ActiveRow von Textbox Excel VBA

ich eine Userform haben zu halten, die Text aktualisiert Boxen von der Auswahl in ComboBox. Ich möchte in der Lage sein, diese bevölkerten Boxen zu ändern, und dann mit dem Update-Befehl, um die Werte in der Folie ändern und löschen Sie dann das Formular

Form Image

Sheet1 Image

Ich habe in der Lage zu schaffen das UserForm, das die Daten hinzufügt, aber ich habe Mühe, VBA wählen Sie die aktive Zelle und aktive Zeile aus dem Kontrollkästchen ... ????

Sobald ich VBA auf die richtige AvtiveCell bekommen kann, kann ich Offset- und Änderung verwenden/add als

benötigt
Private Sub ComboBox1_Change() 
    With Me 
     .TextBox1.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 2) 
     .TextBox2.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 3) 
     .TextBox3.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 4) 
     .TextBox4.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 5) 
     .TextBox5.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 6) 
     .TextBox6.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 7) 
     .TextBox7.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 8) 
     .TextBox8.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 9) 
     .TextBox9.Value = Sheet1.Cells(.ComboBox1.ListIndex + 2, 10) 
    End With 
End Sub 

Private Sub CommandButton2_Click() 
    Unload Me 
End Sub 

Private Sub EditAddButton_Click() 
    EditAdd 
End Sub 

Private Sub UserForm_Initialize() 
    TextBox1.SetFocus 
End Sub 
+0

Können Sie Ihren aktuellen Benutzerformular-Code einfügen? Wir müssen sehen, wie weit Sie bereits haben. –

+0

Hallo Chris, heres der Code sofar –

Antwort

0

Ok, so dass Sie die autopopulation getan haben. Jetzt müssen Sie Ihrem EditAdd-Klick-Unterprogramm Code hinzufügen. Vermutlich möchten Sie die Zellenwerte auf dem Blatt durch die Inhalte der Benutzer im Benutzerformular ersetzen.

Was haben Sie bisher versucht? Ich würde einfach versuchen, die Aufgaben umzukehren! Zum Beispiel in diesem Unter, etwas tun, wie folgt aus:

Private Sub EditAddButton_Click() 
    Dim ComplaintNum as Integer 
    ComplaintNum = ComboBox1.ListIndex + 2 
    With Sheet1 
     .cells(ComplaintNum, 2) = TextBox1.Value 
     ' etc down the list 
    End With 
End Sub 

ich nicht getestet haben - aber es zu gehen und mit ihm spielen, um. Sie müssen auch neue Zeilen hinzufügen, aber ich schreibe das noch nicht für Sie :)

+0

Danke Chris, werde es versuchen, das ist es, was ich benutze, um neue Zeile einzufügen. irgendwelche Verbesserungen? Private Sub CommandButton2_Click() Dim ws As Worksheet: Set ws = Sheet1 ws.Activate Range ("A1") Wählen Sie Selection.End (xlDown) .Offset (1, 0) .Select ActiveCell.Offset (. 0, 1) = DateReceivedBox.Value ActiveCell.Offset (0, 2) = ViaBox.Value –

+0

ActiveCell.Offset (0, 3) = VonTextbox.Value ActiveCell.Offset (0, 4) = Location1Box.Value ActiveCell. Offset (0, 5) = Location2Box.Value ActiveCell.Offset (0, 6) = RegNumberBox.Value ActiveCell.Offset (0, 7) = VehicleMakeBox.Value ActiveCell.Offset (0, 8) = VehicleColorBox.Value ActiveCell.Offset (0, 9) = KommentarBox.Value ActiveCell.FormulaR1C1 = "= + R [-1] C + 1" Range ("A1"). Wählen Sie Me Unload NewComplaintForm.Show End Sub –

+0

Da es schwer ist, Code in den Kommentaren zu lesen, ich würde nicht sofort sagen, ob dieser Einfügecode funktioniert oder nicht - aber wenn es für dich funktioniert, großartig. Eine Verbesserung: Sie müssen Zellen im Code fast nie "auswählen". Wählen Sie nicht, dann verwenden Sie ActiveCell. Beziehe dich direkt auf die Zelle. –

Verwandte Themen