Excel VBA только комментарии могут появляться после конца Sub - PullRequest
0 голосов
/ 14 мая 2019

Я нахожусь в процессе создания пользовательской формы для передачи данных на рабочий лист под названием «Данные персонала». Я искал в интернете кодировку и сумел собрать следующий код -

Кажется, я наткнулся на камень преткновения. Каждый раз, когда я пытаюсь нажать на кнопку «Добавить имя», я получаю следующий код ошибки

Ошибка компиляции: после 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 голосов
/ 14 мая 2019

В строке 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"  

, так как вы заканчиваете sub в строке 17 и последней строке, которая выглядит так, как будто вы пытались либо закрыть всю программу, либо просто закрыть ее, если обнаружена ошибка. Я не могу сказать наверняка.

...