3

我不断收到一条编译消息“以不带结尾”

我是新手,我看不到问题,我有一个“With”,然后是“End with”。如果我删除结尾我得到一个如果没有结束如果。

    Private Sub Submitnewcustomer_Click()
Dim RowCount As Long
Dim ctl As Control

If Me.companynameinput.Value = "" Then
    MsgBox "Please enter a Company Name.", vbExclamation, "Britannia Monitoring Systems"
    Me.companynameinput.SetFocus
    Exit Sub
End If
If Me.contactnameinput.Value = "" Then
    MsgBox "Please enter a Contact Name.", vbExclamation, "Britannia Monitoring Systems"
    Me.companynameinput.SetFocus
    Exit Sub
End If
If Me.addressinput.Value = "" Then
    MsgBox "Please enter an Address.", vbExclamation, "Britannia Monitoring Systems"
    Me.companynameinput.SetFocus
    Exit Sub
End If
If Me.Telphone1input.Value = "" Then
    MsgBox "Please enter at least 1 phone Number.", vbExclamation, "Britannia Monitoring Systems"
    Me.Telphone1input.SetFocus
    Exit Sub
End If
If Me.email1input.Value = "" Then
    MsgBox "Please enter at least 1 Email Address.", vbExclamation, "Britannia Monitoring Systems"
    Me.email1input.SetFocus
End If

RowCount = Worksheets("Database").Range("A1").CurrentRegion.Rows.Count

    With Worksheets("Database").Range("A1")
    .Offset(RowCount, 0).Value = Me.companynameinput.Value
    .Offset(RowCount, 1).Value = Me.contactnameinput.Value
    .Offset(RowCount, 2).Value = Me.Telphone1input.Value
    .Offset(RowCount, 3).Value = Me.telephone2input.Value
    .Offset(RowCount, 4).Value = Me.email1input.Value
    .Offset(RowCount, 5).Value = Me.email2input.Value
    .Offset(RowCount, 6).Value = Me.email3input.Value
    .Offset(RowCount, 7).Value = Me.email4input.Value
    .Offset(RowCount, 8).Value = Me.addressinput.Value
    .Offset(RowCount, 15).Value = Format(Now, "dd/mm/yyyy hh:nn:ss")
    If Me.CheckBox1.Value = True Then
        .Offset(RowCount, 12).Value = "Yes"
    Else
        .Offset(RowCount, 12).Value = "No"
    If Me.CheckBox2.Value = True Then
        .Offset(RowCount, 13).Value = "Yes"
    Else
        .Offset(RowCount, 13).Value = "No"
    If Me.CheckBox3.Value = True Then
        .Offset(RowCount, 14).Value = "Yes"
    Else
        .Offset(RowCount, 14).Value = "No"
    End If
End With

    For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Or TypeName(ctl) = "ComboBox" Then
    ctl.Value = ""
ElseIf TypeName(ctl) = "CheckBox" Then
    ctl.Value = False
End If
     Next ctl
    End Sub

我刚刚挣扎了 30 分钟才把这个贴在这里

任何帮助都会非常感谢

4

1 回答 1

2

您在本节中缺少几个 End If。在您的代码正确编译之前,您需要对其进行整理。

If Me.CheckBox1.Value = True Then
    .Offset(RowCount, 12).Value = "Yes"
Else
    .Offset(RowCount, 12).Value = "No"
If Me.CheckBox2.Value = True Then
    .Offset(RowCount, 13).Value = "Yes"
Else
    .Offset(RowCount, 13).Value = "No"
If Me.CheckBox3.Value = True Then
    .Offset(RowCount, 14).Value = "Yes"
Else
    .Offset(RowCount, 14).Value = "No"
End If
于 2013-08-29T15:59:01.090 回答