Ich versuche, eine Schaltfläche "Speichern" in einem vorhandenen Formular auf VBA zu erstellen. Die zu speichernden Daten gehen in eine Tabelle, die sich auf einem anderen Blatt befindet, das eine Tabelle enthält. Ich bin mir nicht sicher, warum mein Code nicht funktioniert. Hat jemand eine Ahnung, was ich falsch mache?
Private Sub BtnGuardar_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim newrow As ListRow
Set ws = ThisWorkbook.Sheets("RAW_Data")
Set tbl = ws.ListObjects("RawData")
If FechaContable = "" Then
MsgBox ("Debe ingresar la FechaContable"), vbExclamation, "Cifras"
Else
If Monto = "" Then
MsgBox ("Debe ingresar monto"), vbExclamation, "Cifras"
Else
If cboFormaPago = "" Then
MsgBox ("Debe ingresar forma de pago"), vbExclamation, "Cifras"
Set newrow = tbl.ListRows.Add
With newrow
.Range(1) = RegistroID
.Range(2) = Monto
.Range(3) = FechaContable
.Range(4) = Mes
.Range(5) = Ano
.Range(6) = "INGRESOS"
.Range(7) = cboFormaPago
.Range(8) = cboDetalles
.Range(9) = ObservacionesReg
.Range(15) = Format(Date, "DD/MM/YYYY")
.Range(16) = Application.UserName
End With
ActiveWorkbook.Save
Call limpiar_campo
MsgBox ("Registros Ingresados con Exito"), vbInformation, "CIFRAS"
End If
End If
End If
End Sub
Lösung des Problems
Dies kann relevant sein - https://stackoverflow.com/a/40442874/478884
Ich konnte einen Absturz mit einem Benutzerformular reproduzieren, das eine Listbox enthielt, deren RowSource
Satz auf eine der Spalten in einem Listenobjekt festgelegt war: Beim Hinzufügen einer neuen Zeile stürzte Excel nach ein paar Sekunden ab.
Der verlinkte Beitrag hat die Lösung: Trennen Sie die Verknüpfung der Steuerelemente, RowSource
bevor Sie die Zeile hinzufügen, und verknüpfen Sie sie dann erneut.
Keine Kommentare:
Kommentar veröffentlichen