Эй, у меня есть довольно странная проблема с кодом VBA. Я использую макросы для добавления/удаления пользовательских элементов управления программным способом. Когда я просто добавляю элемент управления пользовательской формой и после этого пытаюсь его удалить, все работает нормально. Но как только я пытаюсь удалить элементы управления пользовательской формы, которые я только что создал и использовал (как и userform.Show), я получил названную ошибку. После попытки снова это работает ... так что первый вопрос будет похожим, что, черт возьми, это? И второй вопрос заключается в том, как я могу решить эту проблему или мне даже нужно ее решить? Могу ли я просто запустить эту ошибку с помощью какой-либо обработки ошибок?Ошибка во время выполнения Excel VBA '-2147319767 (80028029)'
Я не уверен, что часть моего кода помогает понять мою проблему, но я предполагаю, что код для удаления элементов управления UserForm может помочь:
Public Function delete_userform_controls(strUserForm As String)
Dim VBProj As VBIDE.VBProject
Dim VBComp As VBIDE.VBComponent
Dim iCount As Integer
Dim cnt As Control
Dim iMaxColumns As Integer
Dim lCountOfLines As Long
Set VBProj = ActiveWorkbook.VBProject
Set VBComp = VBProj.VBComponents(strUserForm)
For Each cnt In VBComp.Designer.Controls
If TypeName(cnt) = "Label" Then iMaxColumns = iMaxColumns + 1
Next cnt
With VBComp.Designer
For iCount = 0 To iMaxColumns - 1
.Controls.Remove ("label_" & iCount & "")
.Controls.Remove ("textbox_" & iCount & "")
Next
.Controls.Remove ("ok_button")
.Controls.Remove ("cancel_button")
End With
With VBComp.CodeModule
.DeleteLines 1, .CountOfLines
End With
End Function
И только кроме того, если я не пользователь любой из userfoms я могу добавлять и удалять элементы управления столько, сколько хочу, никаких ошибок ... thx!
Возможно, это проблема: http://dailydoseofexcel.com/archives/2014/12/11/recent-update-of-office-causes-problems-with-activex-controls/ –
Можете ли вы изменить видимость элементов управления? – Qbik