我创建了一个新的用户表单,用于将数据写入电子表格,然后使用下拉列表将该数据加载回表单中供您编辑和重新保存。当我点击保存时,它不会写入电子表格,当我预先填充电子表格时,它将不会加载到用户表单。我有下面的代码适用于类似的用户形式,但不适用于我正在编译的新代码。运行时我没有收到任何错误消息。我错过了什么?
Dim NotNow As Boolean
Dim dropbuttonclicked As Boolean
Private Sub cmd_Submit_Click() 'Submit
Dim emptyRow As Long
'Make Sheet1 active
Sheet1.Activate
'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1
Dim RowCount As Long
Dim ctl As Control
' inputs new project if no ref selected
If Me.cboSearch.Value = "" Then
Application.ScreenUpdating = False
On Error GoTo WithRef
With ActiveSheet
If .AutoFilterMode Then
.ShowAllData
End If
End With
Else
' If a search is selected edit that line of data
NotNow = True
Application.ScreenUpdating = False
' unprotects the report
On Error GoTo WithRef
With ActiveSheet
If .AutoFilterMode Then
.ShowAllData
End If
End With
WithRef:
Worksheets("Sheet1").Activate
If Me.cboSearch.Value = "" Then
n = WorksheetFunction.CountA(Range("A:A")) + 1
Else
n = Application.Match(Me.cboSearch.Value, Range("A:A"), 0)
End If
On Error GoTo Contnow
'Transfer information
Cells(n, 1).Value = Log_No.Value
Cells(n, 2).Value = Statement.Value
Cells(n, 3).Value = Raised_By.Value
Cells(n, 4).Value = Format(Raised_Date.Value, "mm/dd/yyyy")
Cells(n, 5).Value = Action.Value
Cells(n, 6).Value = Act_Owner.Value
Cells(n, 7).Value = Rel_Ph.Value
Cells(n, 8).Value = Cat.Value
Cells(n, 9).Value = Status.Value
Cells(n, 10).Value = Pos_Neg.Value
Cells(n, 11).Value = Format(Trans_Date.Value, "mm/dd/yyyy")
Cells(n, 12).Value = Ref.Value
Contnow:
' clear data from the form
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Or TypeName(ctl) = "DTPicker" Then
ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next ctl
' Save and return to normal mode
Application.ScreenUpdating = True
'ActiveWorkbook.Save
Unload Me
Project_LL_Form.Show vbModeless
Exit Sub
End If
End Sub
Private Sub cmd_Close_Click()
Unload Me
End Sub
Private Sub cboSearch_Change()
If NotNow Then Exit Sub
'if ref is blank then clear data from form
If Me.cboSearch.Value = "" Then
Unload Me
Project_LL_Form.Show vbModeless
Else
' bring in data based on ref in REF range
vrange = "Log"
Worksheets("Sheet1").Activate
n = Application.Match(Me.cboSearch.Value, Range("A:A"), 0)
On Error GoTo contkh
'Transfer information to the form
'Project Information transfer
Log_No.Value = Cells(n, 1).Value
Statement.Value = Cells(n, 2).Value
Raised_By.Value = Cells(n, 3).Value
Raised_Date.Value = Format(Cells(n, 4).Value, "mm/dd/yyyy")
Action.Value = Cells(n, 5).Value
Act_Owner.Value = Cells(n, 6).Value
Rel_Ph.Value = Cells(n, 7).Value
Cat.Value = Cells(n, 8).Value
Status.Value = Cells(n, 9).Value
Pos_Neg.Value = Cells(n, 10).Value
Trans_Date.Value = Format(Cells(n, 11).Value, "mm/dd/yyyy")
Ref.Value = Cells(n, 12).Value
contkh:
End If
End Sub