活动电子表格中有以下数据:
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)
答案 0 :(得分:2)
ColumnDifferences
,因为在这种情况下Range("A1:A5")
是一列。RowDifferences
或ColumnDifferences
,则比较单元格必须位于要比较的Range
中,例如使用A1
而不是B1
。为进一步说明,我在B1:B5
中添加了其他值。使用A1
作为比较单元,下面是RowDifferences
和ColumnDifferences
的结果(Select
的结果)。
行差异
Sub TestRowDiff()
Dim rng As Range
With Sheets("Sheet2")
Set rng = .Range("A1:B5").RowDifferences(.Range("A1"))
End With
rng.Select
End Sub
在此处选择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
在这里选择A2:B5
,因为“ b”至“ e”与“ a”不同,并且“ g”至“ j”与“ f”不同。
答案 1 :(得分:1)