2011-01-07 2 views
5

У меня есть следующий Vba код, чтобы найти вхождение «0» в следующей колонке:Как получить адрес соседней ячейки?

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

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

Как я могу изменить код таким образом, что, когда он находит «0» на, скажем, B6, он отображает C7 ? то есть. он отображает ячейку, расположенную по диагонали, рядом с той, где находится «0».

ответ

5

Как насчет:

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

Спасибо. Он работает, но я должен был сделать это Cells (c.Row + 1, c.Column + 1) .Address, чтобы получить адрес, иначе он дал бы мне значение. – xbonez

18

Вы можете использовать Offset

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

В Offset свойство имеет вид Offset(row, column). Примеры:

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) 
Смежные вопросы