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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.09.2011, 15:54   #21
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> Public Sub Cena()
Cena = [K10]
End Sub

Для начала, дайте разные имена переменной и процедуре.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.09.2011, 16:15   #22
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Если iCena As Long, то зачем Val(iCena)?
Вот это я и хотел уточнить - что там в этом значении?
Сперва iCena - диапазон, потом неизвестное значение (число? текст? дата?), потом как из строки извлекаете число...

А если не присваивает - значит не нашло, или нашло не там.
Это легко при пошаговом прогоне выяснить.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 13.09.2011 в 16:18.
Hugo121 вне форума Ответить с цитированием
Старый 13.09.2011, 16:25   #23
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
> Public Sub Cena()
Cena = [K10]
End Sub
Для начала, дайте разные имена переменной и процедуре.
Не помогает
Severny вне форума Ответить с цитированием
Старый 13.09.2011, 16:50   #24
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Если iCena As Long, то зачем Val(iCena)?
Вот это я и хотел уточнить - что там в этом значении?
Сперва iCena - диапазон, потом неизвестное значение (число? текст? дата?), потом как из строки извлекаете число...

А если не присваивает - значит не нашло, или нашло не там.
Это легко при пошаговом прогоне выяснить.
Функция Val осталась с предыдущего варианта. Да и подумал что лучше "перебдеть", мало ли что там получится на входе
И все таки почему все так быстро ищет, я так понял не каждая ячейка ж просматривается?
Severny вне форума Ответить с цитированием
Старый 13.09.2011, 17:03   #25
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Т.е. заработало?
Просматривается каждая из заданного диапазона, а как иначе? Это же компьютер - должен выполнять, что сказали
Вернее не каждая, а каждая, пока не найдёт
Если "перебдеть", то не задавайте тип - а то ругнётся уже раньше, на
iCena = Cena.Offset(1, 0).Value
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.09.2011, 17:54   #26
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Т.е. заработало?
Просматривается каждая из заданного диапазона, а как иначе?
Заработало после того как я сменил тип iCena.
Все просматривает? Все возможные ячейки? Их же очень много.
Подскажите как просматривать выполнения кода пошагово.
Severny вне форума Ответить с цитированием
Старый 13.09.2011, 18:12   #27
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Пошагово - по F8.
Но Find пошагово не посмотришь - это внутренняя операция, а не перебор ячеек по-одной. Поэтому и быстро, хотя если совпадений много, то перебор VBA массива из этих значений по скорости не уступит.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.09.2011, 09:11   #28
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
> Public Sub Cena()
Cena = [K10]
End Sub
Для начала, дайте разные имена переменной и процедуре.
Как я уже писал выше, не помогает. Может нужно при выполненнии кода формы вызывать эту процедуру?
Severny вне форума Ответить с цитированием
Старый 16.09.2011, 10:19   #29
Severny
Форумчанин
 
Регистрация: 07.10.2010
Сообщений: 144
По умолчанию

Хучу немного обновить тему.
Есть вариант задавать нужные значения прямо из формы посредством RefEdit. Суть в следующем: на форме создать элемент управления RefEdit посредством которого задать из текущего листа нужное мне значение из ячейки. Как мне кажедься это избавит от изменения кода формы при изменении "кодового слова" (или изменения смещения искомого значения относительно "кодового слова"). Подскажите пожалуйста как в таком случае:
1. Если я уже раз задал значение при вызове формы с текущего листа, как реализовать что бы во второй раз этого не делать, а форма подтягивала это значение сама?
2. Как реализовать что бы если я изменю искомое значение в ячейке вручную, то форма меня предупредила о том что с момента последнего запуска, заданое ранее значение было изменено?
Идея как мне кажется хорошоя тем что избавляет вмешательства в сам код при изменениях на листе (ячейки с искомым значениеи и "кодового слова")
Буду благодарен за помощь.
Severny вне форума Ответить с цитированием
Старый 16.09.2011, 10:43   #30
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Без примера всё туманно...
Но по п1. думаю нужно завести public переменную (даже две - для адреса и значения), по п2. вероятно можно обрабатывать событие worksheet_change - контролируемый адрес брать из п.1, при смене значения - сообщать.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать форму в ручную и освободить из памяти предыдущую форму, на С++Builder 2009? AndreyK Общие вопросы C/C++ 1 18.01.2012 20:54
Переменная в C# bead C# (си шарп) 8 01.05.2011 12:32
Одну и ту же форму использовать как MDI-child форму и как модальную форму? PrimaryPro Общие вопросы Delphi 2 10.03.2010 20:52
c# ссылочная переменная hizahazahub Общие вопросы .NET 1 16.04.2009 20:53
Как изменить стандартную форму на форму любой сложности QwErEn Общие вопросы Delphi 9 08.06.2007 11:44