У меня странная проблема.
У меня есть форма, которая выглядит как на картинке
![enter image description here](https://i.stack.imgur.com/WpX6I.jpg)
Эти флажки генерируются с таким кодом, как этот (есть цикл, который увеличивает значения i и l ... все в порядке, потому что другие компоненты генерируются с помощью одного и того же куска кода, а у меня нет проблема получения их значений):
Public Sub AddCboxs(form, masina, nrmasini, replicare, nrcboxs)
Dim i, k, l As Integer
i = 0
l = 1
Do While i < nrmasini
Do While l < nrcboxs + 1
Set cControl = form.Controls("iooly" & i).Add("Forms.CheckBox.1", "sc" & l & "oly" & i, True)
With cControl
.Width = 15
.Height = 16
.Top = 200 + k
.Left = 205
End With
k = k + 35
l = l + 1
Loop
l = 1
k = 0
i = i + 1
Loop
End Sub
Теперь ... я хочу сделать следующее. Если флажок SC установлен, я хочу сделать кое-что, что вы увидите в следующем фрагменте кода ... без проверки значения флажка код работает нормально и делает то, что я хочу, чтобы ... но проблема в том, что мне нужно сделать это только когда флажок установлен.
Public Sub CalcOly()
Dim i, j, k As Integer
Dim Rand, ContorVal, ContorTotal As Long
Dim ws As Worksheet
Set ws = Worksheets("Config")
Dim cControl As Control
i = 0
j = 1
ContorVal = 0
Do While i < 5
Do While j < 3
Rand = 30
If raport.Controls("sc" & j & "oly" & i).Value = True Then
Do While ws.Cells(Rand, 1).Value <> "" And Rand < 65536
If ws.Cells(Rand, 1).Value = raport.Controls("combo" & j & "oly" & i).Value Then
Set cControl = raport.Controls("iooly" & i).Add("Forms.Label.1", "valoare" & j & "oly" & i, True)
With cControl
.Caption = Int(ws.Cells(Rand, 2).Value * raport.Controls("q" & j & "oly" & i).Value) & " RON"
.Width = 55
.Height = 14
.Top = 42 + k
.Left = 225
End With
ContorVal = ContorVal + Int(ws.Cells(Rand, 2).Value * raport.Controls("q" & j & "oly" & i).Value)
End If
Rand = Rand + 1
Loop
End If
j = j + 1
k = k + 35
Loop
Set cControl = raport.Controls("iooly" & i).Add("Forms.Label.1", "totalval" & "oly" & i, True)
With cControl
.Caption = ContorVal & " RON"
.Width = 55
.Height = 14
.Top = 350
.Left = 225
End With
k = 0
j = 1
i = i + 1
ContorVal = 0
Loop
End Sub
Теперь вот странная вещь ... если я нажимаю на CALCUL VALOARE (которая вызывает процедуру CalcOly), он выполняет код, но независимо от того, установлен флажок SC или нет, он не показывает никакого значения. Если я перехожу на страницу Olympia 4 или Olympia 5, она делает то, что ей нужно, но снова ... игнорируя, если флажки SC установлены или нет.
Я пытался получить значение флажка в отдельной подписи, и я заметил, что он не понимает ... Я действительно не знаю почему!
Большое спасибо за вашу помощь!
Позже: http://www.youtube.com/watch?v=mPb617JxgtI Я загрузил видео, чтобы увидеть, как странно действует приложение. Я не понимаю ... если я удаляю If, который проверяет, установлен ли флажок True или False, он работает нормально