Флажок в Userform1 для отображения да и нет.Код VBA - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть лист с именем keylist и я создал для него форму user1. Просто и ничего особенного.

Параметры пользовательской формы1: Дата, Ключ #, Адрес, Ввод (флажок1), Выход (флажок2) и Комментарий.

У меня userform1 работает и все, кроме флажков. Вот что у меня есть:

Private Sub CommandButton1_Click()

Dim dcc As Long
 Dim abc As Worksheet

 Set abc = Worksheets("Key List")

With abc

   dcc = .Range("A" & Rows.Count).End(xlUp).Row

.Cells(dcc + 1, 1).Value = Date
.Cells(dcc + 1, 2).Value = Me.TextBox1.Value
.Cells(dcc + 1, 3).Value = Me.TextBox2.Value
.Cells(dcc + 1, 4).Value = Me.CheckBox1.Value
'.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
.Cells(dcc + 1, 6).Value = Me.TextBox3.Value

If Me.CheckBox1.Value = True Then

.Cells(dcc + 1, 4).Value = "Yes"

Else

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""

End If
End With

End Sub  

И

Private Sub UserForm_Initialize()

Dim wsActive As Worksheet
Dim i As Long, LastRow As Long
Set wsActive = ActiveSheet
LastRow = wsActive.Cells(wsActive.Rows.Count).End(xlUp).Row

End Sub

У меня был код после флажка else1, но он действительно не работал, поэтому я удалил его. 'In textbox4 является намеренным, потому что я думал о добавлении другого поля в листе и форме, а затем решил не делать этого, но оставил его на тот случай, если оно мне понадобится.

Как я уже говорил выше, все работает, но функция флажка не работает. Я стремился / был, чтобы, если «In» отмечен в форме, тогда «да» входит в лист, и если «In» отмечен, то «Out» не может быть проверен. По логике вещей не имеет смысла, чтобы что-то входило и выходило одновременно, и это одно или другое в любой момент времени. Итак, как мне это сделать и заставить их работать с флажками?

лист форма

Я пробовал несколько вещей, но ничего не получалось. Если кто-нибудь может помочь с кодом VBA и помочь установить флажки, я был бы очень признателен. Еще одна вещь, что, если добавить запись нажата на userform1 и никакие поля не заполнены, данные вводятся еще. Как я могу остановить это? Пользователь должен заполнить поля, чтобы сделать запись, или, если по ошибке щелкнуть запись добавления, и на листе появится пустая запись, своего рода пустая, потому что дата еще вводится.

Заранее спасибо, и я ценю вашу помощь. Приветствия.

1 Ответ

0 голосов
/ 15 ноября 2018
Private Sub CommandButton1_Click()

  Dim dcc As Long
  Dim abc As Worksheet
  Dim Yc As Long

   Set abc = Worksheets("Key List")
   Yc = Choose(Me.OptionButton1 + 2, 4, 5)

   With abc

  dcc = .Range("A" & Rows.Count).End(xlUp).Row

  .Cells(dcc + 1, 1).Value = Date
  .Cells(dcc + 1, 2).Value = Me.TextBox1.Value
  .Cells(dcc + 1, 3).Value = Me.TextBox2.Value
  .Cells(dcc + 1, Yc).Value = "Yes"
  '.Cells(dcc + 1, 5).Value = Me.TextBox4.Value
  .Cells(dcc + 1, 6).Value = Me.TextBox3.Value

 End With

TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
Me.OptionButton1 = 0
Me.OptionButton2 = 0

End Sub
...