我写了这个宏来将信息从之前的工作表复制并粘贴到活动工作表。我想把它变成一个下拉列表,但是当使用数据验证时,宏在被选中时不会运行。附上我的代码,我想知道我应该制作一个列表框还是应该坚持数据验证?我知道有一种方法可以在点击框中点击一次宏观运行
Sub WorkDay1()
ActiveSheet.Range("A6:H44").Value = Worksheets("Route Sheet - Manhattan 1").Range("A6:H44").Value
End Sub
Sub WorkDay2()
ActiveSheet.Range("A6:H44").Value = Worksheets("2").Range("A6:H44").Value
End Sub
Sub WorkDay3()
ActiveSheet.Range("A6:H44").Value = Worksheets("3").Range("A6:H44").Value
End Sub
Sub WorkDay4()
ActiveSheet.Range("A6:H44").Value = Worksheets("4").Range("A6:H44").Value
End Sub
答案 0 :(得分:0)
假设您的下拉列表位于单元格A1中。
将此代码粘贴到工作表代码模块中。
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False If Not Intersect(Target, Range("A1")) Is Nothing Then Select Case Target.Value Case "WorkDay1" WorkDay1 Case "WorkDay2" WorkDay2 Case "WorkDay3" WorkDay3 Case "WorkDay4" WorkDay4 End Select End If Application.EnableEvents = True End Sub
在VBA项目浏览器中,双击要运行宏的工作表。这将打开该工作表的代码模块。然后将代码粘贴到该模块中。
添加此colud将在您选择工作表时更新值。
Private Sub Worksheet_Activate() Select Case Range("A1") Case "WorkDay1" WorkDay1 Case "WorkDay2" WorkDay2 Case "WorkDay3" WorkDay3 Case "WorkDay4" WorkDay4 End Select End Sub