Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2010, 22:44   #1
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию Получить значение строки найденного

Уважаемые форумчане.
Прошу Вас помочь со следующим вопросом.
С помощью Find находим нужное значение кода в диапазоне a:a
Например, значение 2222 найдено и находится в ячейке А2. В ячейку B2 автоматически должна вставиться текущая дата в формате 26.12.10
Подскажите, пожалуйста, как получить значение строки найденного значения 2222 и задать его для вставки даты.


Dim i As Integer
Dim Today

Dim iValue As Variant, poz As Range
Do
iValue = Application.InputBox("Введите номер:", "Ввод")
If iValue = False Then Exit Sub
Set poz = [a:a].Find(What:=iValue, LookAt:=xlWhole)
If poz Is Nothing Then
MsgBox iValue & " Не нашлось"
Else
poz.Select
Exit Do
End If
Loop

Today = Now

i = 3

Cells(i, 2).Value = Today
Изображения
Тип файла: jpg Рис1.JPG (24.6 Кб, 133 просмотров)
Sergey112233 вне форума Ответить с цитированием
Старый 26.12.2010, 22:55   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    On Error Resume Next
    Do
        iValue = Application.InputBox("Введите номер:", "Ввод")
        If iValue = False Then Exit Sub
        Err.Clear: [a:a].Find(What:=iValue, LookAt:=xlWhole).Next = Format(Now, "DD.MM.YY")
        If Err Then MsgBox iValue & " не найдено в столбце А"
    Loop
End Sub
Пример в файле: http://excelvba.ru/XL_Files/Sample__...0__0-54-13.zip

PS: Лучше в ячейку просто вставлять дату, как в этом примере: http://excelvba.ru/XL_Files/Sample__...0__0-56-45.zip
Код:
Err.Clear: [a:a].Find(What:=iValue, LookAt:=xlWhole).Next = Now
А нужного вида даты добиться изменением формата ячейки
(а то сейчас в ячейке хранится не дата, а текст, похожий на дату)



Цитата:
Сообщение от Sergey112233 Посмотреть сообщение
Как Вы считаете, какая литература с примерами применения Excel-VBA или иной ресурс наиболее были бы полезны?
Посмотрите книги и учебники по Excel и VBA здесь: http://excelvba.ru/books
Ну а лучше изучите макросы на примерах: http://excelvba.ru/code

Последний раз редактировалось EducatedFool; 23.01.2011 в 18:08.
EducatedFool вне форума Ответить с цитированием
Старый 26.12.2010, 23:15   #3
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

EducatedFool,
а где здесь получение координат ячеек первого столбца и передача во второй столбец?
Sergey112233 вне форума Ответить с цитированием
Старый 26.12.2010, 23:55   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

[a:a].Find(What:=iValue, LookAt:=xlWhole) - возвращает ссылку на найденную ячейку
.Next - ссылка на ячейку справа от найденной

вот и всё - зачем усложнять...
EducatedFool вне форума Ответить с цитированием
Старый 27.12.2010, 14:56   #5
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
По умолчанию

EducatedFool,

"...а где здесь получение координат ячеек первого столбца и передача во второй столбец?..."

Мой вопрос оказался не совсем корректным.
Позвольте задать его еще раз.
Предполагается, что после нахождения значения кода (2222 в данном примере) текущую дату надо иметь возможность вставить не только в соседнюю ячейку на этой строке, но и в любую другую ячейку на этой строке.
Например, значение 2222 найдено и находится в ячейке А2.
Далее даты ставятся по вариантам:
1.Текущую дату вставить в ячейку D2.
2. Еще одно значение даты: Текущая дата +1 (или+2) - вставить в ячейку F2.
(выбор ячейки, куда нужно вставить дату и ячейки, куда нужно вставить дата +1 осуществляется с помощью значений 1, 2, 3 группы переключателей)
Sergey112233 вне форума Ответить с цитированием
Старый 27.12.2010, 15:26   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

а чуть-чуть почитать, хоть что-нибудь...
set rg = [a:a].Find(What:=iValue, LookAt:=xlWhole)
rg.Next = Format(Now, "DD.MM.YY")
rg.offset(0,2) = now + 2
...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.12.2010, 18:16   #7
Sergey112233
Пользователь
 
Регистрация: 19.12.2010
Сообщений: 82
Плохо

IgorGO,

Спасибо Вам за отклик.

Как Вы считаете, какая литература с примерами применения Excel-VBA или иной ресурс наиболее были бы полезны?
Sergey112233 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск+копирование найденного kain2003 Microsoft Office Excel 4 24.11.2009 19:42
получить значение из select'a для IE Damhurz JavaScript, Ajax 1 09.06.2009 16:33
C#. Как получить значение выпадающего списка? monach79 Общие вопросы .NET 1 18.12.2008 14:29
как получить значение переменной smoke888 PHP 3 20.06.2008 02:11