簡體   English   中英

如何用范圍替換單個單元格引用

[英]How can I replace single cell references with ranges

我有 5 列((a)uptick,(b)downtick,(c)original,(d)current)和(e)存儲值。 所有列都必須是一系列行。 當 d2 更改時,我想將其與 e2 進行比較,如果 d2>e2 則將 a2 中的計數器增加 1(上升),如果 d2<e2 則將 b2 中的計數器撞擊(下降)。 我讓它與許多 if 和 elseif 語句一起使用,但寧願使用更少的代碼來使用范圍內的變量。 為了檢測變化的單元格,我使用“If Not Intersect (Target, Range("d2:d10")) Is Nothing Then....”

我似乎無法弄清楚如何用范圍替換特定的單元格引用。 非常感激任何的幫助!

下面的示例代碼尚未使用范圍。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:D10")) Is Nothing Then
    If Target.Value > Range("E2") Then
    Range("A2") = Range("A2") + 1
    Pause 2#
    Range("E2") = Target.Value
    ElseIf Target.Value < Range("E2").Value Then
    Range("B2") = Range("B2") + 1
    Pause 2#
    Range("E2") = Target.Value
    End If
    End If
End Sub

我假設您要更改在 D 列中輸入值的同一行中的單元格值,即如果 D4 已更改,則調整 A4 或 B4。 為此,您需要更改單元格的行號。 您可以使用target.row提取它。 將其放入變量中並使用該變量而不是 Range() 屬性中的行號。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:D10")) Is Nothing Then
      dim myRow as long
      myRow = target.row
      If Target.Value > Range("E" & myRow) Then
        Range("A" & myRow) = Range("A" & myRow) + 1
        Pause 2#
        Range("E" & myRow) = Target.Value
      ElseIf Target.Value < Range("E" & myRow).Value Then
        Range("B" & myRow) = Range("B" & myRow) + 1
        Pause 2#
        Range("E" & myRow) = Target.Value
      End If
    End If
End Sub

您可以使用.Offset獲得相同的結果。 以下代碼假定您只對范圍D2:D10感興趣,並且不關心列D中的值是否等於列E中的值。

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("D2:D10"), Target) Is Nothing Then
    If Target.Rows.Count > 1 Then Exit Sub
        If Target > Target.Offset(, 1) Then
            Target.Offset(, -3) = Target.Offset(, -3) + 1
            Else
            If Target < Target.Offset(, 1) Then
                Target.Offset(, -2) = Target.Offset(, -2) + 1
            End If
        End If
End If
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM