В этой ситуации я проверяю каждую ячейку в диапазоне «F». и посмотреть, будет ли каждая ячейка соответствовать любой из ячеек в отдельном диапазоне «D». Если это так, я хочу знать номер строки, в которой эта ячейка существует, и скопировать ее (а также информацию в другом столбце той же строки) на другой лист. если он не может найти совпадение, он распечатает ячейку, которую он не смог найти, а рядом с ней «0». Как я могу найти значение строки, в которой эти данные существуют?Как найти номер строки ячейки, которая соответствует любому заданному значению
Dim lastrow As Integer
lastrow = Range("F65336").End(xlUp).Row
Dim C As Integer
C = 2
For Each cell In Range("F2:F" & lastrow)
If cell.Value = Range("D2:" & lastrow) Then
sheet2.Range("B" & C).Value = Sheet1.Range("D" & C).Value
Sheet1.Range("D" & C).Value = Sheet1.Range("F" & VALUE_OF_ROW_OF_MATCHING_CELL).Value
sheet2.Range("C" & C).Value = Sheet1.Range("H" & VALUE_OF_ROW_OF_MATCHING_CELL).Value
Else
sheet2.Range("B" & C).Value = Sheet1.Range("D" & C).Value
Sheet1.Range("C" & C).Value = 0
End If
C = C + 1
Next cell
Если вы хотите найти определенное значение в диапазоне, вы можете использовать (например) 'Set f = rangeToSearch.Find (valueyouwant ,, xlvalues, xlwhole)' f будет установлен в диапазон (если бы значение было найдено) или «Ничего», если это не так. –
набор @TimWilliams f = rangeToSearch.Find ("D" & C ,, F2, F10000) ' будет f значить номер строки или конкретную ячейку? потому что мне нужны данные из соседних (левых и правых) ячеек. – Nick
'f' является (одноячеистым) объектом Range, поэтому' f.Row' выдаст вам номер строки –