Не срабатывает вызов макроса из контекстного меню. - VB
Формулировка задачи:
Добавил в стандартное контекстное меню Excel свое подменю.
в microsoft excel objects (Лист2(ТРАФАРЕТ))
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Run "Module1.Add_Menu", Target
End Sub
в Modules
Sub Add_Menu(ByVal Target As Excel.Range)
If checkTbl Then
If checkTbl Then
With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, temporary:=True)
.BeginGroup = True
.Caption = "Сводной отчетности команды"
.Tag = "onSvod"
End With
Set mnuSvd = Application.CommandBars.FindControl(Type:=msoControlPopup, Tag:="onSvod")
Set mnuSvdDel = mnuSvd.Control.CommandBar
With mnuSvdDel.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Строку текущую удалить"
.OnAction = BuildProcArgString("DeleteString")
.Tag = "mnuSvdDel_Str"
.FaceId = 276 '1786
End With
End If
End Sub
Sub DeleteString()
Rows(ActiveCell.Row).Delete
End Sub
не работает.
подскажите, что не так?
если в Sub DeleteString() добавить всяки MsgBox - то они выходят, но почему то два раза.
строку удалял уже всякими способами..
и :
Worksheets("ТРАФАРЕТ").Rows(numRowIns).Delete
и
Dim rw As Range
For Each rw In Worksheets(1).Cells(ActiveCell.Row, 1).CurrentRegion.Rows
rw.Delete
Next
и еще кучу вариантов.
никак не хочет удалять текущую строчку.
в microsoft excel objects (Лист2(ТРАФАРЕТ))
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Run "Module1.Add_Menu", Target
End Sub
в Modules
Sub Add_Menu(ByVal Target As Excel.Range)
If checkTbl Then
If checkTbl Then
With Application.CommandBars("cell").Controls.Add(Type:=msoControlPopup, temporary:=True)
.BeginGroup = True
.Caption = "Сводной отчетности команды"
.Tag = "onSvod"
End With
Set mnuSvd = Application.CommandBars.FindControl(Type:=msoControlPopup, Tag:="onSvod")
Set mnuSvdDel = mnuSvd.Control.CommandBar
With mnuSvdDel.Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = "Строку текущую удалить"
.OnAction = BuildProcArgString("DeleteString")
.Tag = "mnuSvdDel_Str"
.FaceId = 276 '1786
End With
End If
End Sub
Sub DeleteString()
Rows(ActiveCell.Row).Delete
End Sub
не работает.
подскажите, что не так?
если в Sub DeleteString() добавить всяки MsgBox - то они выходят, но почему то два раза.
строку удалял уже всякими способами..
и :
Worksheets("ТРАФАРЕТ").Rows(numRowIns).Delete
и
Dim rw As Range
For Each rw In Worksheets(1).Cells(ActiveCell.Row, 1).CurrentRegion.Rows
rw.Delete
Next
и еще кучу вариантов.
никак не хочет удалять текущую строчку.
Решение задачи: «Не срабатывает вызов макроса из контекстного меню.»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> Workbook_Open() Module1.Add_Menu <font color="blue">End</font> <font color="blue">Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д