编译错误。错误的参数数或无效的属性分配

问题描述 投票:0回答:1

这是我第一次尝试编码,所以我真的不知道这段代码是否使用了正确的方法来写。希望有人能帮我实现这个If Else的编码。

这是我目前的代码。

Sub Categorisation()

    For Each Category In Range("A3", "C3", "E3", "I3", "M3", "Q3")

        If Not IsEmpty(Range("A3").Value) Then
            Call Cornersonly_lengthwise_rownumbers

        ElseIf Not IsEmpty(Range("C3").Value) Then
            Call Cornersonly_breadthwise_rownumbers

        ElseIf Not IsEmpty(Range("E3").Value) Then
            Call Cornerscentre_lengthwise_rownumbers

        ElseIf Not IsEmpty(Range("I3").Value) Then
            Call Cornerscentre_breadthwise_rownumbers

        ElseIf Not IsEmpty(Range("M3").Value) Then
            Call Cornerscentreedges_lengthwise_rownumbers

        ElseIf Not IsEmpty(Range("Q3").Value) Then
            Call Cornerscentreedges_breadthwise_rownumbers

        End If

    Next Category

End Sub
excel vba excel-vba excel-formula
1个回答
0
投票

你只是尝试第一个条件,如果它是空的,将跳过其他条件。如果你想检查所有的语句,你需要这样做。

Option Explicit
Sub Categorisation()


    'ThisWorkbook refers to the workbook containing the code.
    With ThisWorkbook.Sheets("ChangeThis")
            If Not IsEmpty(.Range("A3")) Then Cornersonly_lengthwise_rownumbers 'arguments (comma separated)
            If Not IsEmpty(.Range("C3")) Then Cornersonly_breadthwise_rownumbers 'arguments (comma separated)
            If Not IsEmpty(.Range("E3")) Then Cornerscentre_lengthwise_rownumbers 'arguments (comma separated)
            If Not IsEmpty(.Range("I3")) Then Cornerscentre_breadthwise_rownumbers 'arguments (comma separated)
            If Not IsEmpty(.Range("M3")) Then Cornerscentreedges_lengthwise_rownumbers 'arguments (comma separated)
            If Not IsEmpty(.Range("Q3")) Then Cornerscentreedges_breadthwise_rownumbers 'arguments (comma separated)
    End With

End Sub

如果你调用的函数有参数,你需要在调用时提供参数。此外,你应该完全引用你的范围(a With 块是一个简单的方法,因为你只需要在范围前面使用".")

© www.soinside.com 2019 - 2024. All rights reserved.