【问题标题】:Compile error saying "wrong number of arguments or invalid property assignment"编译错误说“错误数量的参数或无效的属性分配”
【发布时间】:2017-08-23 00:39:11
【问题描述】:

我有在双击单元格时填充单元格的代码。这里是:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)  
    If Not Intersect(Target, Range("C10:C19", "D10:D19", "E10:E19")) Is Nothing Then  
        Cancel = True  
        Target.Formula = Date  
    End If  
End Sub  

代码运行良好,直到我添加了"E10:E19",然后它给了我一个编译错误说wrong number of arguments or invalid property assignments,然后它突出显示了第一行代码Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

完全披露:我对此完全是个菜鸟,所以任何修复或建议请像我 5 岁一样解释。

【问题讨论】:

  • 你可能想要Range("C10:C19, D10:D19, E10:E19"),它和Range("C10:E19")一样
  • range 对象需要一个或两个 参数(输入值)。你有三个。
  • 了解范围对象覆盖哪些单元格的一种方法是使用 立即窗口 .... 在 VBE 编辑器中按 ctrl-G 它应该会显示出来.. .. 现在调整 VBE 编辑器的大小,以便您可以看到工作表和即时窗口 .... 然后在即时窗口中输入 range("b3").select 并按 Enter ...您应该看到单元格 B3 被选中 .... 尝试其他人.. .range("b5:d7").select...range("b5:d7, a1:a3, a6").select...range("b5:d7, a1:a3, a6").Offset(1).select ...range("b5:d7, a1:a3, a6").Offset(2,3).select等等
  • 您可以双击即时窗口的标题栏(其中显示“即时”),它将与 VBA 编辑器分离。再次双击以重新附加
  • 谢谢你们的帮助,帮助澄清事情很容易!

标签: vba excel compilation basic


【解决方案1】:

试试这个

Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, [C10:C19, D10:D19, E10:E19]) Is Nothing Then
        Cancel = True
        Target.Formula = Date
    End If
End Sub

"C10:C19", "D10:D19", "E10:E19" 范围应该是一个字符串而不是多个字符串
示例 "C10:C19, D10:D19, E10:E19"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多