VBA UserForm вводит данные в таблицу данных даже после ввода, после нажатия кнопки «Сохранить» - PullRequest
0 голосов
/ 08 октября 2018

У меня есть пользовательская форма, которая состоит из нескольких текстовых полей для ввода данных.Пользовательская форма имеет кнопку сохранения, чтобы сохранить ввод в таблицу данных.Чтобы быть понятным, см. Ниже:

Машина 1 - Утренний лом: ____ кг. Ночной лом: ____ кг.

Есть еще машины, но компоновка соответствует заявленной.Коды работают нормально.

Однако мне нужно улучшить данные, добавив такие типы лома, как:

Машина 1 - Утренний скрап: Сухой: ___ кг Мокрый: ___ кг.То же самое к ночному лому. Структура пользовательской формы

If Chain1_morning.Value >= 0 Then
    Cells(WorksheetFunction.CountA(Range("A:A")) + 1, 1).Value = DateValue(Datebox.Value)
    Cells(WorksheetFunction.CountA(Range("F:F")) + 1, 6).Value = "CHAIN 1"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 1).Value = "DRY"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 2).Value = "Morning"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 3).Value = Chain1_morning.Value
    Cells(WorksheetFunction.CountA(Range("J:J")) + 1, 10).Value = "PRODUCTION"

ElseIf Chain1_morning.Value = " " Then
End If

If Chain1_morning_Wet.Value >= 0 Then
    Cells(WorksheetFunction.CountA(Range("A:A")) + 1, 1).Value = DateValue(Datebox.Value)
    Cells(WorksheetFunction.CountA(Range("F:F")) + 1, 6).Value = "CHAIN 1"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 1).Value = "WET"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 2).Value = "Morning"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 3).Value = Chain1_morning_Wet.Value
    Cells(WorksheetFunction.CountA(Range("J:J")) + 1, 10).Value = "PRODUCTION"

ElseIf Chain1_morning_Wet.Value = " " Then
End If

If Chain1_Afternoon.Value >= 0 Then
    Cells(WorksheetFunction.CountA(Range("A:A")) + 1, 1).Value = DateValue(Datebox.Value)
    Cells(WorksheetFunction.CountA(Range("F:F")) + 1, 6).Value = "CHAIN 1"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 3).Value = Chain1_Afternoon.Value
    Cells(WorksheetFunction.CountA(Range("I:I")) + 1, 10).Value = "PRODUCTION"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 2).Value = "Afternoon"

ElseIf Chain1_Afternoon.Value = " " Then
End If

If Chain1_Night.Value >= 0 Then
  Cells(WorksheetFunction.CountA(Range("A:A")) + 1, 1).Value = DateValue(Datebox.Value)
    Cells(WorksheetFunction.CountA(Range("F:F")) + 1, 6).Value = "CHAIN 1"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 1).Value = "DRY"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 2).Value = "Night"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 3).Value = Chain1_Night.Value
    Cells(WorksheetFunction.CountA(Range("J:J")) + 1, 10).Value = "PRODUCTION"

ElseIf Chain1_Night.Value = " " Then
End If

If Chain1_Night_Wet.Value >= 0 Then
    Cells(WorksheetFunction.CountA(Range("A:A")) + 1, 1).Value = DateValue(Datebox.Value)
    Cells(WorksheetFunction.CountA(Range("F:F")) + 1, 6).Value = "CHAIN 1"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 1).Value = "WET"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 2).Value = "Night"
    Range("A2").End(xlDown).End(xlToRight).Offset(0, 3).Value = Chain1_Night_Wet.Value
    Cells(WorksheetFunction.CountA(Range("J:J")) + 1, 10).Value = "PRODUCTION"

ElseIf Chain1_Night_Wet.Value = " " Then
End If

Затем, после того как я изменю эти коды, даже если я не введу ни одного ввода, программа все равно сохранит в таблицу данных. Лист данных присматривает за кнопкой «Сохранить» в пользовательской форме.

Есть ли способ исправить это?Я был бы рад предоставить больше информации, если вам это понадобится.

P / s: Код в Chain1_Af днем ​​- это исходная структура кода.P / s / s: я просто изменяю код в цепочке 1. Код другой машины все еще не тронут.

...