![Excel:转到列差异已损坏?](https://linux22.com/image/1217918/Excel%EF%BC%9A%E8%BD%AC%E5%88%B0%E5%88%97%E5%B7%AE%E5%BC%82%E5%B7%B2%E6%8D%9F%E5%9D%8F%EF%BC%9F.png)
所以我在工作表上有一列。它看起来像这样:
a,a,a,b,b,b,c,c,c,c,d,d,d,d,e,e,e,e 等
(是的,它是一列。这个东西不喜欢回报。。)
现在,如果你单击该列,并选择“转到特殊>列差异”
它应该选择第一个.. a、b、c、d、e 单元格
但是选择 A 之后,您得到的是所有?行中的单元格。
这对 excel 2003 和 2007 都适用
我究竟做错了什么?
答案1
这种替代方法最终也同样有效。
答案2
GoTo Special>Column Differences 针对选定范围进行操作。我不确定你为什么认为它会找出如何遍历该列。
如果您查询某个范围(例如您的列)的值,该值是该范围内的第一个单元格。因此,值不相等的单元格将被a
选为不同的单元格,这就是我得到的结果。
更新:该子程序应该可以按照您的期望运行:
' Selects changed cells in a single column.
' This sub will *not* work on multiple column selections
Public Sub SelectColumnDifferences()
Dim c As Range
Dim different As Range
Set different = Selection.Cells(1)
For Each c In Selection
If c.Value <> different.Areas(different.Areas.Count).Value Then
Set different = Union(different, c)
End If
Next c
different.Select
Set different = Nothing
Set c = Nothing
End Sub