2013-08-29 169 views
3

我不断收到编译消息“结尾没有与”编译错误与未与

即时通讯新为此,我不能看到一个问题,我有一个“与”之后和“以结束”。如果我删除结束与我得到一个如果与结束如果。

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分钟,刚刚张贴这在这里

任何帮助将是巨大的感谢

+0

我强烈建议使用http://www.oaltd.co.uk/Indenter/中的加载项,它可以自动缩进代码,使得这些未关闭的循环/ ifs更容易找到。 – dendarii

回答

2

你缺少一对夫妇结束的IFS在本节。您需要在代码正确编译之前对其进行排序。

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 
+0

+1秒打了30秒 – 2013-08-29 16:00:59

+0

你知道为什么VBA不会在'With'语句中混合缺少'End If's吗? – Holene