У меня есть лист, где вы нажимаете кнопку, а затем создается несколько флажков ActiveX. Число зависит от значений в некоторых выпадающих списках, но обычно оно равно 16-32.
Если вы нажмете кнопку еще раз, они будут удалены и вместо них будут созданы новые. Он отлично работает первые пары раз, все флажки сняты и появляются новые. Но после 20-30-кратного нажатия он как бы зависает и Excel перезапускается.
После перезапуска он работает снова, но только один раз, при втором нажатии Excel зависает и перезапускается снова. Потом снова работает, но только один раз, потом снова перезагружается и так далее.
Если вы подождете пару минут, он снова заработает, и вы можете нажимать его снова и снова, но после 20-30 нажатий он снова замерзнет, и все повторяется.
Это код, который удаляет флажки:
Dim s As Shape
For Each s In Sheets("Choice").Shapes
If s.Type = 12 Then
If Not Intersect(s.TopLeftCell, Sheets("Choice").Range("A14:T100")) Is Nothing Then
s.Delete
End If
End If
Next
код, который их создает:
for i = 1 to Ubound(EmpList)
'lots of code that creates the variables offset and col
Set rng = Choice.Cells(14 + (i * 2) - offset, col)
cellLeft = rng.Left
cellTop = rng.Top
cellwidth = rng.Width
cellheight = rng.Height
Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Checkbox.1", Left:=cellLeft, Top:=cellTop, Width:=cellwidth * 2, Height:=cellheight * 2)
obj.Name = "CheckBox" & i
ActiveSheet.OLEObjects("CheckBox" & i).Object.Value = False
ActiveSheet.OLEObjects("CheckBox" & i).Object.Caption = EmpList(i - 1)
Next i
Кто-нибудь знает, что может быть не так?