插入宏名称跟踪计数器 vba
Insert counter for macro name tracking vba
How to make commandButton1..5 names executable within a loop from a
single Sub_Click routine??
Added the 5 macros i need to use with Active X buttons.
The macros are navigation references in the active sheet "GANTT".
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Att_1()
'
' Att_1 Macro
'
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E3").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-1,-2)", Scroll:=True
End Sub
Sub Att_2()
'
' Att_2 Macro
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E4").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-2,-2)", Scroll:=True
End Sub
Sub Att_3()
'
' Att_3 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E5").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-3,-2)", Scroll:=True
End Sub
Sub Att_4()
'
' Att_4 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E6").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-4,-2)", Scroll:=True
End Sub
Sub Att_5()
'
' Att_5 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E7").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-5,-2)", Scroll:=True
End Sub
Private Sub CommandButton1_Click() '--> CALL MACRO
ActiveSheet.CommandButton1.BackColor = RGB(200, 330, 10)
Call Att_1
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton2_Click() '--> CALL MACRO
ActiveSheet.CommandButton2.BackColor = RGB(200, 330, 10)
Call Att_2
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton3_Click() '--> CALL MACRO
ActiveSheet.CommandButton3.BackColor = RGB(200, 330, 10)
Call Att_3
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton4_Click() '--> CALL MACRO
ActiveSheet.CommandButton4.BackColor = RGB(200, 330, 10)
Call Att_4
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton5_Click() '--> CALL MACRO
ActiveSheet.CommandButton5.BackColor = RGB(200, 330, 10)
Call Att_5
Sheets("GANTT").Protect
End Sub
不确定为什么要用循环使它复杂化...您可以像这样从另一个子中调用它们:
Private Sub Test()
CommandButton1_Click
CommandButton2_Click
CommandButton3_Click
CommandButton4_Click
CommandButton5_Click
End Sub
请尝试下一个代码:
Sub CallButtonsClickEvent()
Dim i As Long
For i = 1 To 5
Application.Run "" & ActiveSheet.CodeName & "" & ".CommandButton" & i & "_Click"
'Application.Run "" & ActiveSheet.CodeName & "" & ".Att_" & i
'Sheets("GANTT").Protect
Next i
End Sub
看到你的工作簿,我评论了第二行和第三行,因为它们包含在按钮的点击事件中...
How to make commandButton1..5 names executable within a loop from a single Sub_Click routine??
Added the 5 macros i need to use with Active X buttons.
The macros are navigation references in the active sheet "GANTT".''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub Att_1()
'
' Att_1 Macro
'
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E3").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-1,-2)", Scroll:=True
End Sub
Sub Att_2()
'
' Att_2 Macro
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E4").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-2,-2)", Scroll:=True
End Sub
Sub Att_3()
'
' Att_3 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E5").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-3,-2)", Scroll:=True
End Sub
Sub Att_4()
'
' Att_4 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E6").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-4,-2)", Scroll:=True
End Sub
Sub Att_5()
'
' Att_5 Macro
'
Application.ScreenUpdating = False
Sheets("GANTT").Unprotect
Sheets("LISTE").Unprotect
Sheets("LISTE").Select
Range("E7").Select
Sheets("LISTE").Protect
Application.Goto Reference:= _
"offset(INDEX(GANTT!R[3]C[7]:R[3]C[496],MATCH(1,IF(GANTT!R[3]C[7]:R[3]C[496]<>"""",IF(GANTT!R[3]C[7]:R[3]C[496]<>""I"",1)),0)),-5,-2)", Scroll:=True
End Sub
Private Sub CommandButton1_Click() '--> CALL MACRO
ActiveSheet.CommandButton1.BackColor = RGB(200, 330, 10)
Call Att_1
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton2_Click() '--> CALL MACRO
ActiveSheet.CommandButton2.BackColor = RGB(200, 330, 10)
Call Att_2
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton3_Click() '--> CALL MACRO
ActiveSheet.CommandButton3.BackColor = RGB(200, 330, 10)
Call Att_3
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton4_Click() '--> CALL MACRO
ActiveSheet.CommandButton4.BackColor = RGB(200, 330, 10)
Call Att_4
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton5_Click() '--> CALL MACRO
ActiveSheet.CommandButton5.BackColor = RGB(200, 330, 10)
Call Att_5
Sheets("GANTT").Protect
End Sub
不确定为什么要用循环使它复杂化...您可以像这样从另一个子中调用它们:
Private Sub Test()
CommandButton1_Click
CommandButton2_Click
CommandButton3_Click
CommandButton4_Click
CommandButton5_Click
End Sub
请尝试下一个代码:
Sub CallButtonsClickEvent()
Dim i As Long
For i = 1 To 5
Application.Run "" & ActiveSheet.CodeName & "" & ".CommandButton" & i & "_Click"
'Application.Run "" & ActiveSheet.CodeName & "" & ".Att_" & i
'Sheets("GANTT").Protect
Next i
End Sub
看到你的工作簿,我评论了第二行和第三行,因为它们包含在按钮的点击事件中...