Dim iCell As Range, iRow As Long
Set iCell = Worksheets(1).UsedRange.Find( _
What:="Образец_для_поиска", LookIn:=xlValues, LookAt:=xlWhole)
If Not iCell Is Nothing Then
iRow = iCell.Row 'Номер строки,
'который, на самом деле, нам не нужен, ибо :
iCell.EntireRow.Delete
Else
MsgBox "Увы, ничего не найдено", , ""
End If
Определение номера строки по адресу ячейки
Не знаю функций и методов VBA, подскажите пожалуйста.
Как мне определить номер строки по найденной ячейке в файле Excel.
Ситуация такая:
я нашел ячейку, а теперь мне надо удалить всю строку полностью этой ячейки.
ЗЫ: использую VBA через 1С.
В любом случае, спасибо большое за совет, не взирая на результат!
В Excel поставленная задача может быть решена так :
Если писать
ExcelЛист.Rows(ПерваяЯчейка.Selection().Row()).Delete();
то ошибка такая
Метод объекта не обнаружен (Selection)
Если писать
ExcelЛист.Rows(ПерваяЯчейка.Selection.Row()).Delete();
то ошибка такая
Поле объекта не обнаружено (Selection)
Если исходить из Ваших слов, то поиск ячейки уже реализован, однако, второй пост содержит лишь набор ключевых слов, использование которых, в представленном виде, не имеет особого смысла ... при этом сам поиск и находка изволят отсутствовать.
Что касается об'екта Selection, то если предположить, что в момент выполнения инструкций выделен действительно диапазон (хотя это может быть и не так), то удаление всех строк этого диапазона, по идее, должно выглядить следующим образом (определение необходимости наличия или отсутствия скобок ложится на Вас) :
Excel.Selection.EntireRow.Delete;
ПерваяЯчейка = ExcelЛист.Cells.Find("Привет");
с помощью такой строки я её смогу удалить:
ExcelЛист.Rows(1).Delete();
но в параметрах Rows(1) - это номер строки.
Поэтому я и спрашиваю, как мне найти этот самый пресловутый номерок с помощью найденной переменной ПерваяЯчейка!
Вот и все!
ExcelЛист.Rows(ПерваяЯчейка.Row()).Delete();
Цитата: Андре
все получилось с помощью конструкции
ExcelЛист.Rows(ПерваяЯчейка.Row()).Delete();
ExcelЛист.Rows(ПерваяЯчейка.Row()).Delete();
"Удивительное" открытие свойства Row, о возможности использовании которого, было сказано ещё в моём первом посте, равно как и о свойстве EntireRow
ПерваяЯчейка.EntireRow().Delete();
P.S. Интересно, а что произойдёт, если в рабочем листе ExcelЛист не будет найдено ни одной ячейки, содержащей "Привет" ...