excel显示基于单元格“位置”列的内容的单元格
我试图根据特定列中单元格的相对位置(行)来更改单元格的值。 为了显示:
Name Up Down NoMove New Bob 0 0 1 0 Fred 0 0 1 0 Jane 0 0 1 0 Peter 0 0 1 0 etc
外部来源将改变人们的地位(鲍勃,弗雷德)。 当发生这种情况时,4列应反映当前状态相对于以前的状态
Name Up Down NoMove New Fred 1 0 0 0 Bob 0 1 0 0 Jane 0 0 1 0 Alan 1 0 0 1 etc
我看遍了所有的Stackoverflow,但找不到任何可能的工作。 我甚至不确定是否有可能,但也许我没有正确的术语。 有人可以告诉我在哪里寻找或提供解决scheme? 谢谢!
你可以尝试一下这样的代码:
Sub UpDown() Dim LastRow As Long Dim var As Variant Dim name As String Dim Position As Long With ActiveSheet LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row For i = 2 To LastRow Range("B:B").Cells(i) = 0 Range("C:C").Cells(i) = 0 Range("D:D").Cells(i) = 0 Range("E:E").Cells(i) = 0 var = Application.Match(Range("A:A").Cells(i), Range("F:F"), 0) ' Not found If (IsError(var)) Then Range("E:E").Cells(i) = 1 ' Found Else Position = var ' Moved up If i < Position Then Range("B:B").Cells(i) = 1 Else ' Stayed the same If i = Position Then Range("D:D").Cells(i) = 1 Else ' Moved down Range("C:C").Cells(i) = 1 End If End If End If Next i 'Copy names For i = 2 To LastRow Range("F:F").Cells(i) = Range("A:A").Cells(i) Next i End With End Sub
我将它分配给一个button来testing它,但是你也可以使它成为一个更改事件处理程序,以便每当A列中的某些内容发生更改时运行,或者按照此处所述在定时器上运行它。
起始条件: –
第一遍: –
第二遍: –