2011-01-07 31 views
5

Tengo el siguiente código VBA para encontrar ocurrencias de "0" en una columna siguiente:¿Cómo obtener la dirección de la celda adyacente?

For Each c In Range("B:B") 

     If c.Value = "0" Then 
      MsgBox "0 found at " & (c.Address) 
     End If 
    Next c 

¿Cómo puedo modificar el código para que cuando encuentre una B6 "0" en la opinión,, muestra C7 ? es decir. muestra la celda diagonalmente adyacente a aquella donde se encuentra el "0".

Respuesta

5

¿Qué tal:

 MsgBox "0 found at " & Cells(c.Row + 1, c.Column + 1) 
+2

Gracias. Funciona, pero tuve que convertirlo en Cells (c.Row + 1, c.Column + 1) .Address para obtener la dirección, de lo contrario, me daría el valor. – xbonez

18

Puede utilizar Offset

MsgBox "0 found at " & c.Offset(1,1).Address 

La propiedad Offset es de la forma Offset(row, column). Ejemplos:

Range("B6").Offset(0,0) //refers to cell B6 
Range("B6").Offset(1,0) //move one row down (B7) 
Range("B6").Offset(0,1) //move one column to the right (C6) 
Range("B6").Offset(-1,0) //move one row up (B5) 
Range("B6").Offset(0,-1) //move one column to the left (A6) 
Cuestiones relacionadas