При удалении и создании флажков происходит сбой Excel - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть лист, где вы нажимаете кнопку, а затем создается несколько флажков 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

Кто-нибудь знает, что может быть не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...