12 Stimmen

Wie bekomme ich die Adresse der benachbarten Zelle?

Ich habe den folgenden VBA-Code, um Vorkommen von "0" in einer folgenden Spalte zu finden:

Für jedes c In Range("B:B")

        If c.Value = "0" Then
            MsgBox "0 gefunden bei " & (c.Address)
        End If
    Next c

Wie kann ich den Code ändern, so dass wenn es eine "0" findet, zum Beispiel auf B6, es C7 anzeigt? Es soll also die diagonale Zelle zur Zelle anzeigen, in der die "0" gefunden wird.

25voto

Alex P Punkte 12076

Sie können Offset verwenden

MsgBox "0 gefunden an " & c.Offset(1,1).Address

Die Offset Eigenschaft hat die Form Offset(Zeile, Spalte). Beispiele:

Range("B6").Offset(0,0) // bezieht sich auf Zelle B6
Range("B6").Offset(1,0) // eine Zeile nach unten verschieben (B7)
Range("B6").Offset(0,1) // eine Spalte nach rechts verschieben (C6)
Range("B6").Offset(-1,0) // eine Zeile nach oben verschieben (B5)
Range("B6").Offset(0,-1) // eine Spalte nach links verschieben (A6)

10voto

Fionnuala Punkte 89346

Wie wäre es mit:

        MsgBox "0 gefunden bei " & Cells(c.Row + 1, c.Column + 1)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X