Страницы: 1
RSS
диапазон из вычисляемого адреса
 
Господа-товарищи!!!
такая проблема: есть лист с набором данных (потребление электроэнергии).
Задача такая: находить в этом листе определенную строку с названием электроустановки (это реализовано макросом)
это всегда ячека в столбце D, и в неизвестной строке. Хорошо. Мы ее нашли.

Теперь надо относительно найденной ячейки выделить диапазон : начало - смещенный относительно найденного адрес (+1 строка вниз и +3 столбец вправо (начало диапазона) - до N строк вниз, тот же столбец).
N-значение из ячейки

Когда - то в глубоком детстве занимался Delphi(там те же принципы), думал слета решу эту ерундовую задачи но сейчас мозги похоже совсем не на то заточены..Запутался в вычисляемой адресации Проблема копеечная, надеюсь кто то слету мне ответит.

Колдую вокруг этого:
Цитата
Cells.Find(What:="МНА 4000 №1", After:=ActiveCell, LookIn:=xlFormulas, _        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
       MatchCase:=False, SearchFormat:=False).Activate

   Range(????).Select
Спасибо.
Изменено: PetrovVodkin - 06.04.2015 12:37:07
 
Зачем Вам выделять диапазон? Делайте с ним сразу что Вам нужно. Вот как я понял
Код
Sub rCopy()
Dim fCell As Range
    With Sheets("1")
        Set fCell = .Columns("D").Find(What:=Range("I2").Value, LookIn:=xlValues)
        .Range(fCell.Offset(1, 3), fCell.Offset(Range("I3").Value + 1, 3)).Copy Destination:=Range("I7")
    End With
End Sub
Согласие есть продукт при полном непротивлении сторон
 
Ух, визуально все понятно и очевидно, спасибо.
но когда вставляю ваш пример в файле и привязываю к кнопке выдает 91 ошибку, как я понимаю, переменная какаято не определена... хотя вроде как массив fCell определен, а больше там ничего нет...
Что то не состыковывается, подскажите в чем дело.
Я по сути не программист, подскажите в чем дело
 
В столбце D листа 1 нет искомого значения
Перед Dim fCell...добавьте обработку ошибок
Код
On Error Resume Next
Согласие есть продукт при полном непротивлении сторон
 
Добавляйте проверку. Переменная fCell пустая - такое значение (МНА 4000 №1) в столбце D не найдено.
 
Понятно.
Просто в файле эта строка не в столбце D а в объедененной ячеке - от D до J. поэтому не находит наверное.
Думаю, надо просто отменить объединение ячеек в всем листе, тогда все найдется.

Подскажите как безопасно отментить объединение ячеек в листе либо другим способом найти в строку в объединенной ячейке от D до J.
Заранее извиняюсь, даже книги не могу нормальной найти, все на ощупь...
 
Вариант: перебрать ячейки столбца циклом. Но лучше отказаться от объединённых ячеек изначально - одна проблема с ними потом...
 
в том и проблема - объединение ячеек рожает система которая выплевывает файл и на которую повлиять невозможно. И формат какойто выплевывает полуэкзелевский jspx который занимает огромное количество мб, и  открывается долго. Приходится его потом преобразовывать в xlsb. В получаемом файле получаются объедененные ячейки, в них то и находится искомая строка.
 
Попробуйте заменить соответствующую строку на эту
Код
 Set fCell = .Cells.Find(What:=Range("I2").Value, LookIn:=xlValues)
Согласие есть продукт при полном непротивлении сторон
 
Есть опасность найти значение не в том столбце )
 
Нет посредством Cell вообще какуюто лабуду выдало.
Все равно всем спасибо. Я уже ближе к цели.
Страницы: 1
Наверх