Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Заполнить таблицу с UserForm, Добавить данные в ячейку по условию
 
Здравствуйте уважаемые жители планеты!
Задача: Внести данные с формы в таблицу.
Непосредственно перед заполнением таблицы, необходимо проверить столбец "В" на наличие вносимого адреса, В случае обнаружения оного, с лева от него ( к уже существующей дате), добавить текущую дату.
ПРОБЛЕМА:
Все вроде бы получилось, но если дело не касается последней заполненной ячейки в столбце "А". (см.файл)

Заранее спасибо всем!
 
у вас там вообще все плохо..

вы присваиваете переменной LastRow объект - ячейку листа

потом пытаетесь использовать эту переменную в цикле For j = 3 To LastRow , что, конечно же, вызывает ошибку.. но, так как используется on error resume next, то интерпретатор переходит к след строке( внутри цикла) хотя параметр цикла не соответствует границам, что вызывает дальнейшие ошибки...
Живи и дай жить..
 
Слэн! Спасибо, что обратили внимание на тему!
Вы хотите сказать, что лучше будет так:
Код
Dim j As Long, LastRow As Long
    LastRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
    For j = 3 To LastRow
...
Next
Правильно ли я Вас понял?
Изменено: Ronin751 - 30 Апр 2015 11:56:09
 
не знаю как насчет лучше, но так будет корректно..

возможен вариант и с
set lastrow=..
for j=3 to lastrow.row
Живи и дай жить..
 
А проверить нет возможности? ))
 
Цитата
А проверить нет возможности? ))
Тоже правильно! :) Пардоньте!
 
А с какой вообще целью Set?
 
Слэн спасибо за подсказку. Но теперь другая проблема.
При внесении нового адреса, ругается на:
Код
       With LastRow
.Offset(1, 0).Select: Call Granici
.Offset(1, 0).Value = Date: .Offset(1, 0).NumberFormat = "dd/mm/yyyy
.Offset(1, 1).Value = Allbox: .Offset(1, 2).Value = Me.TextBox5
.Offset(1, 3).Value = Me.ComboBox2: .Offset(1, 4).Value = Me.TextBox7: .Offset(1, 5).Value = Me.TextBox8
End With   

Что делать? Заблаговременно спасибо!
Изменено: Ronin751 - 30 Апр 2015 12:18:59
 
Тогда используйте конструкцию Слэн,  из поста #4, как и раньше
Код
set lastrow=..
но
Код
for j=3 to lastrow.row
Согласие есть продукт при полном непротивлении сторон.
 
Зар-р-работало! СПАСИБО ТОВАРИЩИ! :D  
Как всегда, все гениальное - просто.
Всем Удачи!
 
а зачем два раза искать одно и тоже?
Код
 1 раз в цикле - If Sheets("Лист1").Cells(j, 2) = Allbox Then
2 раз Set r1 = Sheets("Лист1").Cells(j, 2).Find(Allbox)
если можно использовать найденое в первом j
cells(j,1)=cells(j,1)& Chr(10) & Today
 
V! Спасибо Вам за подсказку. Учту в дальнейшем. Спасибо всем еще раз!
Страницы: 1
Читают тему (гостей: 1)