Я пытаюсь написать код для пользовательской формы в VBA, который принимает ввод флажков и помещает значение на лист со значением «Да / Нет» вместо ИСТИНА / ЛОЖЬ. Предполагается, что эта пользовательская форма может запускаться несколько раз и добавлять новую строку в лист вместо того, чтобы просто каждый раз менять одно значение ячейки.
Я пытался создать строковую переменную, которая, если значение равно TRUEстрока будет "Да" и изменит значение cbProd.Value на "Да" вместо ИСТИНА. И аналогично для FALSE. Не уверен, сделал ли я это неправильно или подхожу к нему неправильно.
Private Sub cbProd_Click()
Dim cbProdcut As String
If cbProd.Value = True Then
cbProduct = "Yes"
cbProd.Value = cbProduct
Else
cbProduct = "No"
cbProd.Value = cbProduct
End If
End Sub
Private Sub InsertRow()
With Sheet1
' Get the current row
Dim i As Long
Dim curRow As Long
If .Range("A4") = "" Then
curRow = 4
Else
curRow = .Range("A" & .Rows.Count).End(xlUp).Row + 1
End If
' Add item to row
.Cells(curRow, 6) = cbProd.Value
End With
End Sub
Я ожидаю, что в ячейке будет вывод "Да", за исключением того, что он просто выходит пустым. Если я не изменю значение cbProd.Value на новое строковое значение, оно по крайней мере напечатает TRUE / FALSE. После изменения значения ничего не печатается.