|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.02.2009, 23:07 | #1 |
Пользователь
Регистрация: 06.02.2009
Сообщений: 41
|
Граматика
Подскажите пожалуйста, как правильно написать в VBA следующее:
Если ячейка1=ячейке2, то ячейка3=ячейка1+ячейка2 Зараннее благодарен. |
08.02.2009, 23:17 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Код:
|
22.02.2009, 18:05 | #3 |
Пользователь
Регистрация: 06.02.2009
Сообщений: 41
|
Еще вопрос, помогите пожалуйста правильно записать цикл в VBA:
For i = 0 To 5 Если значение ячейки A1 равно значению i-той ячейке столбца B Then [c1]=[A1] Else [c1] = "Значение не найдено" Next i |
22.02.2009, 18:10 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Например, так:
Код:
Правильнее было бы так: Код:
Если в ячейке b3 значение совпадёт с a1, то в с1 будет записано значение из a1 Но при проверке следующей ячейки - b4 значение уже не совпадёт с a1, то в с1 будет записано "Значение не найдено" И вообще, весь код можно записать в одну строку: Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 22.02.2009 в 18:33. |
22.02.2009, 19:51 | #5 | |
Пользователь
Регистрация: 06.02.2009
Сообщений: 41
|
Цитата:
Но вот еще один вопрос, если нужно вложить IF в IF? т.е. If ... then If ... then ... else ... else. Не будет ли путаницы в If и else? И есть ли в VBA какой-нибудь оператор, наподобие begin-а в паскале? |
|
22.02.2009, 20:08 | #6 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Подробнее можно поискать здесь. Цитата:
Цитата:
|
|||
23.02.2009, 00:41 | #7 | |
Пользователь
Регистрация: 06.02.2009
Сообщений: 41
|
Цитата:
Задача: Есть таблица со значениями. Нужно чтобы во время ввода данных в ячейку эти данные мгновенно проверялись на наличие в этой таблице, и если таковы имеются, то они выводятся справа в столбик. При нажатии Энтер, значение из ячейки, в которую производится ввод записывалось в конец таблицы. Что у меня не выходит, так это то, что после выполнения TextBox1_KeyUp процедура TextBox1_Change() не реагирует на изменения в столбце G. Подскажите почему? И еще, как можно сделать так, что бы при условии несовпадения значения в ячейке b4 и в ячейках столбца h, ячейка с4 содержала в себе "Значение отсутствует"?? Последний раз редактировалось systemmind; 23.02.2009 в 00:44. |
|
23.02.2009, 02:05 | #8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Задание понял лишь частично.
Цитата:
При изменениях на листе срабатывает Worksheet_Change, но никак не TextBox1_Change. Посмотрите вложение. Введите в ячейку b4 (точнее, в TextBox, расположенный над этой ячейкой), число 256 |
|
23.02.2009, 13:32 | #9 |
Пользователь
Регистрация: 06.02.2009
Сообщений: 41
|
Все отлично! Спасибо! Впринципе мне это и требовалось. Для меня не понятно только то, каким образом производится запись адресов в столбец d? Может в этих строчках:
Set newcell = Cells(Rows.Count, 3).End(xlUp).Offset(1) newcell = cell: newcell.Next = cell.Address если нет, то скажите пожалуйста, что они означают? И еще 2 вопроса. 1. у меня еще заполнены столбцы H и I. Так вот как сделать так, чтобы значения ячеек столбца H записывлись вместо адресов ячеек слобца С? (cо столбцом I, думаю сам разберусь). 2. Как мне поступить с текстбоксом, если понадобится его перенести в другую ячейку? Зараннее, очередной раз, спасибо) |
23.02.2009, 19:40 | #10 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Цитата:
Чтобы выделить текстбокс (для перетаскивания): (в Excel 2003) 1) Отображаем панель инструментов Visual Basic 2) На этой панели нажимаем кнопку Режим конструктора 3) Щёлкаем по ячейке B4 Текстбокс будет выделен. Не забывайте, что значения из текстбокса пишутся в ячейку под ним. Так что, после переноса текстбокса, необходимо заменить все ссылки на ячейку [b4] на адрес новой ячейки. Цитата:
Код:
Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 23.02.2009 в 19:44. |
|||