gpt4 book ai didi

excel - 调用带参数的子时应使用哪些参数(ByVal Target As Range)

转载 作者:行者123 更新时间:2023-12-04 20:55:23 24 4
gpt4 key购买 nike

我正在 VBA 上制作一个宏,该宏附加到 excel 中的数据验证列表。当从列表中选择某个选项时,我希望它运行分配给该选择的宏。但是我反复收到错误“编译错误。参数不是可选的。我知道我需要在调用宏后添加参数,但我输入的任何内容都会导致“需要对象”或“预期)”

此代码在我的工作表中。 'Case "Fifteen": 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

知道 Argument 参数应该是什么吗?我认为这将与案例“十五”:Macro1(“C18:D19”)或案例“十五”:Macro1(r1)类似,但没有运气。

模块中的代码单独运行时可以工作,所以我认为它不会有任何问题。

任何帮助是极大的赞赏。我环顾四周,找不到答案。

最佳答案

谢谢您的帮助。通过删除 intersect行它现在按预期工作。最终代码如下。

Private Sub Worksheet_change(ByVal Target As Range)
Select Case Range("P4")
Case "Fifteen": Macro1
End Select
End If
End Sub

Sub Macro1()

Dim r1 As Range, r2 As Range
Set r1 = Sheets("Calculator").Range("C18:D19")
Set r2 = Sheets("Answers").Range("I14:J15")
Application.EnableEvents = False
r2.Value = r1.Value
Application.EnableEvents = True

End Sub

关于excel - 调用带参数的子时应使用哪些参数(ByVal Target As Range),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49178280/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com