我正在构建一个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
答案 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行和最后一行结束子程序,所以看起来您可能一直试图关闭整个程序,或者如果检测到错误就将其关闭。我不能确定。