Страница 1 из 1

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

Добавлено: 28 сен 2005, 12:41
BelkaJul
Здраствуйте!
Работаю в Excel 2003
Требуется:
при определенном значении в ячейке 1 записывать в ячейку 2 определённый текст.

Среди стандартных функций Excel подобного не нашла.
Пытаюсь сделать пользовательскую функцию.

Код: Выделить всё

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)

Не работает. :cry:

Пробовала такой вариант:

Код: Выделить всё

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 
тоже не подходит.

И ещё что странно, под отладкой - программа до строки

Код: Выделить всё

Laz = "" 

НЕ ДОХОДИТ!

Вызываю функцию таким образом

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

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

ЧТО Я ДЕЛАЮ не так?

Добавлено: 28 сен 2005, 13:41
pashulka
Пользовательские функции вызываемые из ячеек рабочего листа не изменяют значения других ячеек.
Почему для решения своей задачи, Вы не хотите использовать стандартную функцию рабочего листа, например =ЕСЛИ(A1=123,456789;"3333332";"")

Добавлено: 28 сен 2005, 14:13
BelkaJul
pashulka,
я не смогла найти стандартную функцию, которая по одному условию запишет текст в текущую ячейку, а по другому условию - В ДРУГУЮ ячейку.

предложенный вариант =ЕСЛИ(A1=123,456789;"3333332";"") запишет значения в ТЕКУЩУЮ ячейку, а хочется в ДРУГУЮ ячейку.

Реально ли такое?

Добавлено: 28 сен 2005, 15:48
pashulka
Всё что я говорил касательно пользовательских функций, относится и к стандартным функциям рабочего листа. И почему нельзя изначально ввести подобную формулу именно в нужную ячейку ...

Добавлено: 28 сен 2005, 16:18
BelkaJul
Решение мне подсказал uhm
на форуме http://bbs.vbstreets.ru/viewtopic.php?p=153499#153499

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

Уря! я счастлива!!!
Спасибо ВСЕМ, кто отозвался на мою проблему!

Добавлено: 28 сен 2005, 17:23
pashulka
Тоже самое, что сказал я, только вид сбоку.