代码之家  ›  专栏  ›  技术社区  ›  Zev Spitz

无法获取Range类的RowDifferences属性

  •  0
  • Zev Spitz  · 技术社区  · 6 年前

    我在活动电子表格中有以下数据:

    A    B
    ---  ---
    a    a
    b
    c
    d
    e
    

    在哪里? B1 当前是活动单元格。

    “调试”窗格中的以下代码:

    Dim rng As Range
    Set rng = ActiveSheet.Range("A1:A5").RowDifferences(ActiveCell)
    

    失败原因:

    运行时错误“1004”:无法获取Range类的RowDifference属性

    什么是正确的用法 RowDifferences 财产?


    更新

    我在使用时也会遇到同样的错误 ColumnDifferences 以上数据。

    Set rng = ActiveSheet.Columns("A").ColumnDifferences(ActiveCell)
    

    即使我转置数据:

    A   B   C   D   E
    --- --- --- --- ---
    a   b   c   d   e
    a
    

    并设置 A2 作为活动单元格,我得到相同的错误:

    Set rng = ActiveSheet.Rows(1).RowDifferences(ActiveCell)
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   BigBen    6 年前
    1. 使用 ColumnDifferences 自从 Range("A1:A5") 是本例中的列。
    2. 如果你在使用 RowDifferences 柱状差异 ,比较单元格 必须 位于 Range 你在比较,例如使用 A1 而不是 B1 是的。

    为了进一步演示,我在 B1:B5 是的。与 A1号 作为比较单元,下面是 行差 柱状差异 ( Select 结果)。

    行差

    Sub TestRowDiff()
        Dim rng As Range
    
        With Sheets("Sheet2")
            Set rng = .Range("A1:B5").RowDifferences(.Range("A1"))
        End With
    
        rng.Select
    End Sub
    

    enter image description here

    在这里 B1:B5层 选中-Excel按行检查第1-5行,比较A列和B列中的单元格。字母“f”不等于“a”,“g”不等于“b”等等。

    列差异

    Sub TestColDiff()
        Dim rng As Range
    
        With Sheets("Sheet2")
            Set rng = .Range("A1:B5").ColumnDifferences(.Range("A1"))
        End With
    
        rng.Select
    End Sub
    

    enter image description here

    在这里 A2:B5 是因为“B”到“E”与“A”不相同,而“G”到“J”与“F”不相同。

        2
  •  1
  •   girlvsdata    6 年前

    正如@bigben在评论中所说,你可能正在寻找 ColumnDifferences 在这里。

    Here 是MSDN文档 RowDifferences

    以及 here 是为了 柱状差异

    你应该得到这样的结果:

    Set rng = ActiveSheet.Columns("A").ColumnDifferences(ActiveCell)