Excel VBA只有注释可能会出现在结束子

时间:2019-05-14 11:26:37

标签: excel vba userform

我正在构建一个Userform,以将数据传输到一个名为“ Staff Data”的工作表中。我在网上搜索了编码,并设法将以下代码拼凑在一起-

我似乎遇到了绊脚石。每次尝试单击“添加名称”按钮时,都会显示以下错误代码

编译错误:在End Sub,End Function或End Property之后只能显示注释。我还获得了以下代码的FrmData部分,该部分以蓝色

突出显示。
If FrmData.ARLArea = True Then AreaValue = "ARL"

AreaValue是嵌套在第1帧中的选项按钮 GradeValue是嵌套在第2帧中的选项按钮

所以我不确定问题是否出在我从选项按钮收集信息的编码方式上,还是问题出在其他地方。

有人可以指出正确的方向来解决这个问题吗?

Private Sub AddName_Click()

'Variable Declaration
Dim BlnVal As Boolean

Dim RowCount As Long
Dim r As Long
Const LastRow = 2000
RowCount = Worksheets("Staff Data").Cells(Rows.Count, 1).End(xlUp).Row
 With Worksheets("Staff Data")
  .Cells(RowCount + 1, 1).Value = AreaValue.Value
  .Cells(RowCount + 1, 2).Value = FrmData.txtEmployeeNo1.Value
  .Cells(RowCount + 1, 3).Value = FrmData.txtFirstName1.Value
  .Cells(RowCount + 1, 4).Value = FrmData.txtLastName1.Value
  .Cells(RowCount + 1, 5).Value = GradeValue.Value
 End With
End Sub

    'Find Area value
    If FrmData.ARLArea = True Then AreaValue = "ARL"
    If FrmData.LSQArea = True Then AreaValue = "LSQ"
    If FrmData.KNBArea = True Then AreaValue = "KNB"
    If FrmData.RSQArea = True Then AreaValue = "RSQ"
    If FrmData.RevenueControlInspectors = True Then AreaValue = "RCI"
    If FrmData.SpecialRequirementsTeam = True Then AreaValue = "SRT"


    'Find Grade value
    If FrmData.CSA2 = True Then GradeValue = "CSA2"
    If FrmData.CSA1 = True Then GradeValue = "CSA1"
    If FrmData.CSS2 = True Then GradeValue = "CSS2"
    If FrmData.CSS1 = True Then GradeValue = "CSS1"
    If FrmData.CSM2 = True Then GradeValue = "CSM2"
    If FrmData.CSM1 = True Then GradeValue = "CSM1"
    If FrmData.AM = True Then GradeValue = "AM"
    If FrmData.RCI = True Then GradeValue = "RCI"
    If FrmData.SRT = True Then GradeValue = "SRT"

  On Error GoTo ErrOccured
    'Boolean Value
    BlnVal = 0

    'Data Validation
    Call Data_Validation

    'Check validation of all fields are completed are not
    If BlnVal = 0 Then Exit Sub


    'TurnOff screen updating
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
    End With

ErrOccured:
    'TurnOn screen updating
    Application.ScreenUpdating = True
    Application.EnableEvents = True

End Sub

1 个答案:

答案 0 :(得分:0)

第17行上有一个End Sub语句,导致您的程序看不到任何超出该值的内容。尝试删除该行,看看它是否按预期工作,或者是否还有其他问题尚未发现。

似乎整个部分都将被跳过

    If FrmData.ARLArea = True Then AreaValue = "ARL"
    If FrmData.LSQArea = True Then AreaValue = "LSQ"
    If FrmData.KNBArea = True Then AreaValue = "KNB"
    If FrmData.RSQArea = True Then AreaValue = "RSQ"
    If FrmData.RevenueControlInspectors = True Then AreaValue = "RCI"
    If FrmData.SpecialRequirementsTeam = True Then AreaValue = "SRT"


    'Find Grade value
    If FrmData.CSA2 = True Then GradeValue = "CSA2"
    If FrmData.CSA1 = True Then GradeValue = "CSA1"
    If FrmData.CSS2 = True Then GradeValue = "CSS2"
    If FrmData.CSS1 = True Then GradeValue = "CSS1"
    If FrmData.CSM2 = True Then GradeValue = "CSM2"
    If FrmData.CSM1 = True Then GradeValue = "CSM1"
    If FrmData.AM = True Then GradeValue = "AM"
    If FrmData.RCI = True Then GradeValue = "RCI"
    If FrmData.SRT = True Then GradeValue = "SRT"  

因为您要在第17行和最后一行结束子程序,所以看起来您可能一直试图关闭整个程序,或者如果检测到错误就将其关闭。我不能确定。