|
|
|
новичок
      
участник
Last Login: 08.06.2007 6:36
Сообщ.: 9,
Visits: 105
|
|
1Public Sub InitPopup() Dim cb As Object Dim X As Object, Y As Object, Z As Object 'CommandBars("Custom").Delete Set cb = CommandBars.Add("Custom", msoBarPopup) Set X = cb.Controls.Add With X .Caption = "insert" .OnAction = "InsD" End With Set Y = cb.Controls.Add With Y .Caption = "update" .OnAction = "UpdD" End With Set Z = cb.Controls.Add With Z .Caption = "delete" .OnAction = "DelD" End With End Sub
Сам код используется на листе след. образом: 2 Private Sub Worksheet_Activate() getdata.getprep InitPopup End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean) CommandBars("Custom").ShowPopup Cancel = True End Sub
При первом запуске программы все работает хорошо, но если перейти на другой лист, где такой же код, как и 2, то выдается ошибка: Application-defined or object-defined error Интуитивно понятно, что нужно раскомментировать строку с удалением меню, но тогда ошибка выдается сразу при загрузке. Что делать?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.08.2007 10:09
Сообщ.: 80,
Visits: 827
|
|
| Замените в первом макросе выражение в комментарии на следующее: For Each bar In Application.CommandBars If Not bar.BuiltIn Then _ If bar.Name = "Custom" Then bar.Delete Next
|
|
|
|
|
новичок
      
участник
Last Login: 08.06.2007 6:36
Сообщ.: 9,
Visits: 105
|
|
| Спасибо большое, все заработало!
|
|
|
|