我正在VBA上制作一个宏,它附加到excel中的数据验证列表。当从列表中选择某个选项时,我希望它运行分配给该选项的宏。然而,我反复遇到错误“编译错误”。参数不是可选的。”我知道调用宏后需要添加参数,但我输入的任何内容都会导致“Object required”或“expected”
此代码在我的工作表中。“Case”十五行:Macro1是有错误的一行。
Private Sub Worksheet_change(ByVal Target As Range)
If Not Intersect(Target, Range("P4")) Is Nothing Then
Select Case Range("P4")
Case "Fifteen": Macro1
End Select
End If
End Sub
以下代码位于模块中-用于将值从一个工作表中的单元格复制到另一个工作表中。
Sub Macro1(ByVal Target As Range)
Dim r1 As Range, r2 As Range
Set r1 = Sheets("Calculator").Range("C18:D19")
Set r2 = Sheets("Answers").Range("I14:J15")
If Intersect(Target, r1) Is Nothing Then Exit Sub
Application.EnableEvents = False
r2.Value = r1.Value
Application.EnableEvents = True
End Sub
你知道参数应该是什么吗?我认为这将与案例“十五”:Macro1(“C18:D19”)或案例“十五”:Macro1(r1)大致相同,但没有运气。
模块中的代码在独立运行时可以工作,因此我认为不会有任何问题。
非常感谢您的帮助。我环顾四周,找不到答案。