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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2012, 17:33   #1
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию Вывод в текстбокс результата вычисления формулы

Добрый день, уважаемые форумчане!
Вроде и вопрос простой, но видно сегодня не мой день. Есть форма, в которую в текстбокс 1 пользователь вносит вручную названия стран на английском. В текстбоксе 2 нужно получить точное совпадение на русском. В текстбоксах 3 и 4 варианты неполных соответствий.
Не получается вывести в текстбокс 2 результат вычисления формулы ВПР значения текстбокса 1 по листу Словарь. В форме пытался прописать код через переменные. И запутался.
И второе, подскажите как лучше искать частичное совпадение. Той же ВПР? Или чем-то еще?
Заранее спасибо!
Вложения
Тип файла: rar Книга1.rar (21.8 Кб, 11 просмотров)
strannick вне форума Ответить с цитированием
Старый 19.09.2012, 17:46   #2
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Извиняюсь, слегка прогнал. Вот так:

Код:
TextBox2.Text = Application.WorksheetFunction.IF(IsError(VLookup(TextBox1.Value, Sheets("Словарь").Range("A:B"), 2, 0)), "Значение не найдено", VLookup(TextBox1.Value, Sheets("Словарь").Range("A:B"), 2, 0))
Ну и другие формулы, которые могут находить неполные соответствия (совпадения).
strannick вне форума Ответить с цитированием
Старый 19.09.2012, 17:56   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Я бы получал нужное значение формулой в ячейке,
а для текстбокса назначил бы связанную ячейку (в которой формула)

И макросов не потребовалось бы...
EducatedFool вне форума Ответить с цитированием
Старый 20.09.2012, 15:22   #4
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Я бы получал нужное значение формулой в ячейке,
а для текстбокса назначил бы связанную ячейку (в которой формула)

И макросов не потребовалось бы...
Через ячейку - это понятно, но хотелось как раз уйти от промежуточных телодвижений, а произвести все непосредственно в текстбоксе.

Кстати, приведенный вариант не работает:

Код:
TextBox2.Text = Application.WorksheetFunction.If(IsError(VLookup(TextBox1.Value, Sheets("Словарь").Range("A1:B2000"), 2, 0)), "Значение не найдено", VLookup(TextBox1.Value, Sheets("Словарь").Range("A1:B2000"), 2, 0))
Работает так:

Код:
TextBox2.Text = Application.WorksheetFunction.VLookup(TextBox1.Value, Sheets("Словарь").Range("A1:B2000"), 2, 0)
Объясните почему? И я так пониманию, если значение не будет найдено, то вывалится в дебаг. Что тогда, ставить ON ERROR RESUME NEXT?
strannick вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод результата! Аделинкка Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 29 09.05.2012 08:12
Вывод в текстбокс AleGr Общие вопросы C/C++ 2 29.04.2012 21:57
вывод результата Илья- Общие вопросы C/C++ 0 16.11.2011 17:29
Некорректный вывод результата (1,#J) Drozd Oleg Общие вопросы C/C++ 3 25.09.2011 12:31
Составить программу вычисления выражения и выведения полученного результата на экран.тема ФУНКЦИИ. coolbaba Общие вопросы Delphi 1 03.06.2010 03:31