Поиск в Экселе
Есть книга экселевская, на первом листе лежат необходимые данные, но они начинаются не с левого верхнего угла. Т.е. в ячейке "В3" написано "Дата_выдачи" и дальше в столбце все отформатированно как дата, потом мледующий столбец "D3" - "менеджер" и дальше вниз фамилии менеджеров. Как проще всего не зная номеров строк и номеров столбцов найти откуда начинаются данные? (т.е. это через время может уже стать не B3 и D3, а скажем С201 и G200) Я знаю как называются начальные ячейки столбцов (B3 и D3), но ячейки перед этим (2 четверть как бы) могут быть и не пустыми.
1. Присвоить имена ячейкам, которые являются заголовками таблицы и затем определять первую заполненную ячейку.
2. Найти ячейку, которая содержит соответствующий заголовок и затем определить первую заполненную ячейку.
Если же заголовки таблицы всегда размещаются в ячейках "B3", "D3" и т.д. то Вам остаётся просто проверить заполненна или нет ячейка "B4", "D4" и если она пустая, то :
Код:
iAddress = Worksheets(1).Range("C3").End(xlDown).Address
Я наверное не очень хорошо выразился, но мне надо находиьт адрес ячейки, по ее содержимому. Т.е. я точно знаю что есть ячейка в которой написано "менеджер", но не знаю ее адреса. Как найти ее адрес? перебор отдельных ячеек конечно возможен, но вы сами понимаете сколько это времени может занять.
Код:
On Error Resume Next
iAddress = Worksheets(1).Range("Менеджер").Address
iAddress = Worksheets(1).Range("Менеджер").Address
Примечание : можно конечно использовать и семейство .Names но я бы советовал использовать именно этот вариант, так как имя может быть уровня рабочего листа (локальное)
Вариант II.
Код:
Set iCell = Worksheets(1).UsedRange.Find(What:="Менеджер", LookIn:=xlValues, LookAt:=xlWhole)
If Not iCell Is Nothing Then iAddress = iCell.Address
If Not iCell Is Nothing Then iAddress = iCell.Address