我是excel宏的新手,所以我需要帮助。 我希望基于特定值触发宏。我使用CONCATENATE函数获取名字和姓氏和月份的值,例如我希望“ Barna Gabor July”能够根据内容执行宏。到目前为止,我有这个:
Sub worksheet_Search(ByVal Target As Range)
Set Target = Sheets("Master File").Range("I12")
If Target.Value = "Barna Gabor July" Then
Call Barna_July
End If
If Target.Value = "Barna Gabor August" Then
Call Barna_August
End If
If Target.Value = "Barna Gabor September" Then
Call Barna_September
End If
If Target.Value = "Barna Gabor October" Then
Call Barna_October
end if
*etc.....*
End sub
但是我收到错误消息“对象_worksheet的方法范围失败”,当我进行调试时,它会将我引向宏。
需要执行的宏相同,只是工作表和范围不同,因为我有更多的人和表格:
Sub Gabor_July()
Sheets("Gabor").Range("q7:u15").Copy Destination:=Sheets("Master File").Range("c6:G14")
Application.CutCopyMode = False
End Sub
你能告诉我我要去哪里吗?
如果我将其分配给按钮而不是在上面的命令中使用它,则宏为好
谢谢
答案 0 :(得分:2)
我相信以下代码可以实现您的期望,只需将您的代码替换为下面的代码,该代码应放在工作表Sheets("Master File")
下:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$I$12" Then
Select Case Target.Value
Case "Barna Gabor July"
Barna_July
Case "Barna Gabor August"
Barna_August
Case "Barna Gabor September"
Barna_September
Case "Barna Gabor October"
Barna_October
End Select
End If
End Sub