Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Определение номера строки по адресу ячейки

24K
14 июля 2008 года
Андре
9 / / 23.07.2007
Добрый день!
Не знаю функций и методов VBA, подскажите пожалуйста.
Как мне определить номер строки по найденной ячейке в файле Excel.
Ситуация такая:
я нашел ячейку, а теперь мне надо удалить всю строку полностью этой ячейки.
ЗЫ: использую VBA через 1С.
В любом случае, спасибо большое за совет, не взирая на результат!
275
14 июля 2008 года
pashulka
985 / / 19.09.2004
В Excel поставленная задача может быть решена так :

Код:
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


В 1С Вы также можете использовать свойства EntireRow и Row
24K
14 июля 2008 года
Андре
9 / / 23.07.2007
Да это так, но вот в 1С отладчик не знает, что такое Selection или Row!
Если писать
ExcelЛист.Rows(ПерваяЯчейка.Selection().Row()).Delete();
то ошибка такая
Метод объекта не обнаружен (Selection)

Если писать
ExcelЛист.Rows(ПерваяЯчейка.Selection.Row()).Delete();
то ошибка такая
Поле объекта не обнаружено (Selection)
275
14 июля 2008 года
pashulka
985 / / 19.09.2004
[quote=Андре]я нашел ячейку ...[/quote]

Если исходить из Ваших слов, то поиск ячейки уже реализован, однако, второй пост содержит лишь набор ключевых слов, использование которых, в представленном виде, не имеет особого смысла ... при этом сам поиск и находка изволят отсутствовать.

Что касается об'екта Selection, то если предположить, что в момент выполнения инструкций выделен действительно диапазон (хотя это может быть и не так), то удаление всех строк этого диапазона, по идее, должно выглядить следующим образом (определение необходимости наличия или отсутствия скобок ложится на Вас) :

Excel.Selection.EntireRow.Delete;
24K
14 июля 2008 года
Андре
9 / / 23.07.2007
Поиск был выполнен с помощью этого:
ПерваяЯчейка = ExcelЛист.Cells.Find("Привет");
с помощью такой строки я её смогу удалить:
ExcelЛист.Rows(1).Delete();
но в параметрах Rows(1) - это номер строки.
Поэтому я и спрашиваю, как мне найти этот самый пресловутый номерок с помощью найденной переменной ПерваяЯчейка!
Вот и все!
24K
14 июля 2008 года
Андре
9 / / 23.07.2007
все получилось с помощью конструкции
ExcelЛист.Rows(ПерваяЯчейка.Row()).Delete();
275
14 июля 2008 года
pashulka
985 / / 19.09.2004
Цитата: Андре
все получилось с помощью конструкции
ExcelЛист.Rows(ПерваяЯчейка.Row()).Delete();



"Удивительное" открытие свойства Row, о возможности использовании которого, было сказано ещё в моём первом посте, равно как и о свойстве EntireRow

ПерваяЯчейка.EntireRow().Delete();

P.S. Интересно, а что произойдёт, если в рабочем листе ExcelЛист не будет найдено ни одной ячейки, содержащей "Привет" ...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог