如何解决为宏名称跟踪 vba 插入计数器
如何使 commandButton1..5 名称在循环内从
单个 Sub_Click 例程??
添加了我需要与 Active X 按钮一起使用的 5 个宏。
宏是活动表“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],-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],-3,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],-4,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],-5,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,10)
Call Att_2
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton3_Click() '--> CALL MACRO
ActiveSheet.CommandButton3.BackColor = RGB(200,10)
Call Att_3
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton4_Click() '--> CALL MACRO
ActiveSheet.CommandButton4.BackColor = RGB(200,10)
Call Att_4
Sheets("GANTT").Protect
End Sub
Private Sub CommandButton5_Click() '--> CALL MACRO
ActiveSheet.CommandButton5.BackColor = RGB(200,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
看到你的工作簿,我评论了第二行和第三行,因为它们包含在按钮单击事件中...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。