Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 10

Проблема с пользовательской функцией

06.12.2011, 13:29. Показов 1173. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!
Работаю в Excel 2003
Требуется:
при определенном значении в ячейке 1 записывать в ячейку 2 определённый текст.

Среди стандартных функций Excel подобного не нашла.
Пытаюсь сделать пользовательскую функцию.
Visual Basic
1
2
3
4
5
6
Function Laz(address_Source As Range, num As Double, address_To As Range, str_To As String) 
  If address_Source.Value = num Then 
    address_To.Value = str_To 
  End If 
  Laz = "" 
End Function
т.е. если значение в ячейке, указанной первым параметром (address_Source As Range) равно второму параметру (num As Double),
то хочу в ячейку, указанную третим параметром (address_To As Range) записать четвёртый параметр (str_To As String)

Не работает.

Пробовала такой вариант:
Visual Basic
1
2
3
4
5
6
Function Laz(address_Source As Range, num As Double, address_To As Range, str_To As String) as String 
  If Range(address_Source.Address(False, False)).Value = num Then 
    Range(address_To.Address(False, False)).Value = str_To 
  End If 
  Laz = "" 
End Function
тоже не подходит.

И ещё что странно, под отладкой - программа до строки
Visual Basic
1
Laz = ""
НЕ ДОХОДИТ!
Вызываю функцию таким образом

=Laz(A4;7;A14;"3333332")

В ячейке отображается "#ЗНАЧ!" (ошибка в значении).

ЧТО Я ДЕЛАЮ не так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2011, 13:29
Ответы с готовыми решениями:

Глюк с пользовательской функцией
Пытаюсь освоить работу с пользовательскими функциями и упёрся вот в такой глюк. В ячейке B1 стоит обращение к пользовательской ф-ции:...

Рассчитать поле "Со скидкой" с использованием пользовательской функцией
Функция должна возвращать величину суммы со скидкой, в качестве параметра функции указывается исходная сумма (без скидки). Расчет...

Проблема с функцией Find
Здраствуйте. Я в программировании на VBA в Excel - новичок. Подскажите пожалуйста, почему функция Find не находит искомое значение в...

5
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
06.12.2011, 14:00
пользовательская функция не может менять значения ячеек напрямую - она должна возвращать результат, который и используется в вызвавшей ячейке. То, что вам нужно, делается с помощью sub
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 10
06.12.2011, 14:58  [ТС]
Переделала так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
Function Laz(address_Source As Range, num As Double, address_To As Range, str_To As String) As String
  Lazarev address_Source, num, address_To, str_To
  Laz = ""
End Function
 
Private Sub Lazarev(address_Source As Range, num As Double, address_To As Range, str_To As String)
  If Range(address_Source.Address(False, False)).Value = num Then
    Range(address_To.Address(False, False)).Value = str_To
  End If
End Sub
По прежнему не работает....
Настораживает то, что под отладкой выполнение обрывается на строке
Visual Basic
1
Range(address_To.Address(False, False)).Value = str_To
хотя address_To.Address(False, False) - верно интерпретируется в адрес ячейки-получателя.
0
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
06.12.2011, 15:06
А зачем в данном случае пользовательская функция?
=ЕСЛИ(A2=B2;"Числа равны";"Числа не равны")
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 10
06.12.2011, 15:57  [ТС]
общая идея такая:
в ячейку 1 пишем формулу, которая при истине записывает СЮДА же "строку 1", а при лжи - записывает в ячейку 2 "строку 2"
0
0 / 0 / 0
Регистрация: 16.11.2011
Сообщений: 10
06.12.2011, 16:55  [ТС]
Решение мне подсказал uhm
на форуме http://bbs.vbstreets.ru/viewtopic.php?p=153499#153499

=ЕСЛИ(ячейка_1="строка_1";"";"строка_2")

Уря! я счастлива!!!
Спасибо ВСЕМ, кто отозвался на мою проблему!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2011, 16:55
Помогаю со студенческими работами здесь

Проблема с функцией Str: Can't find rpoject or library
Почему при переносе с одного компа на другой перестает работать функция Str? Выдает ошибку Can't find rpoject or library. Хотя все...

Задачи с пользовательской формой
Помогите решить задачу Создать программу под названием «Жребий», в которой пользователь должен угадать, что выдаст случайным образом...

Ошибка в пользовательской функции
Всем привет! Стоит у меня Exel 2003 года выпуска, так вот: Написал формулу с Exel в VB и получаю ошибку, как ее решить не знаю, в...

Работа пользовательской функции
Добрый день, форумчане! Ранее работала пользовательская функция во всех книгах, но здесь не хочет, в чем может быть причина? Мне...

Размер пользовательской формы
Доброго времени суток. При помощи winapi я убрал у формы заголовок, кнопку закрытия, вообщем всю служебную часть. Теперь мне нужно ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru