Страницы: 1
RSS
Ошибочное заполнение диапазона ячеек, заполняется не первая пустая строка, а непонятно какая..
 
Добрый день, Уважаемые!
Задумал другу помочь в его работе, но несколько дней уже бьюсь с простой (скорее всего) задачкой и не могу двинуться дальше в своей разработке..
Общая задача - найти и заполнить нужную карточку из списка, исходя из названия карточки. Вроде бы все получается, только заполнение некорректно проходит. По окошку Locals вижу, что диапазон и первая пустая строка в нем, определяются верно, но почему то заполнение идет не в последней строке, а со смещением каким то.. видимо есть некое правило при работе с диапазонами, которое я не усвоил, а понять не могу, какое именно..
Помогите пожалуйста, для опытных людей, это должно быть наверно не так сложно...
 
Как воспроизвести ошибку и как вообще построена работа?
 
если нажать кнопку "найти" то ищется карточка с наименованием из ячейки L4. потом в эту карточку нужно вписать данные в следующую пустую строку в столбце В (только в диапазоне карточки). пока вместо вписывания я сделал просто активацию потенциальной ячейки (остальное закомментировал). работа идет пока только с столбцом В пока. мне главное механизм отработать, а потом я уже все сделаю дальше по тихоньку.. в перспективе вообще форма для ввода будет.
 
Ищу "БУМАГА ОФИСНАЯ НДС" - попадаю в ячейку В131. Там пусто...
 
не совсем так. Найденная карточка подсвечивается красным текстом. это говорит о том, что текст ищется правильно. потом от "красной ячейки" я сделал смещение в колонку B, там обозначил диапазон рабочий и в нем пытаюсь искать последнюю строку (получается) и активировать ячейку "B" этой строки. вот и получается, что активируется совсем не та ячейка (B131). должна быть в данном случае B69
обозначенный диапазон для контроля выкидывается в msgbox.
 
там у меня в скрипте максимально закомментировано все..
 
Да не нужны мне комменты в коде - Вы "на пальцах" расскажите порядок работы.
 
Посмотрите, подправил Ваш код + проверка на заполненность карточки  :)
 
Вообщем порядок работы сейчас не важен. давайте проще поступим.
вот кусок кода, который не работает как я хочу:
Код
Sub Find_n_Highlight()

    On Error Resume Next: Err.Clear
    Dim myRange As Range
    Dim lLastRow As Long
    
 Set myRange = Range("$B$28", "$B$37") 
    With myRange
        lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(lLastRow, 1).Activate
    End With
End Sub


мне надо, чтоб в диапазоне B28:B37 искалась первая пустая ячейка. в эту ячейку нужно встать.
а по факту мы встаем почему то в В58. вот такая проблема.
 
Игорь Каява, мой пример не заметили?
Ваша проблема здесь
Код
lLastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

lLastRow присваевается номер строки на листе, а Вы им оперируете как номер строки диапазона.

да, ещё
Код
Set myRange = Range("$B$28", "$B$37") 

это тоже проблема. После этого Ваш диапазон - две крайних ячейки. Вместо запятой поставьте двоеточие
Изменено: Sergei_A - 16.04.2013 12:23:00
 
Сергей, спасибо большое. уже проверил. то, что нужно! к тому же хотел в перспективе добавлять проверку по заполненности карточки, а вы мне такой подарок.. прямо супер! где тут в рейтинг плюсовать?  :D
 
рейтинг это показуха  ;)
Удачи.
ps Я исправил свой пост выше, посмотрите ещё одну проблему.
Страницы: 1
Наверх