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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
BelkaJul
Сообщения: 23
Зарегистрирован: 08 авг 2005, 12:27
Откуда: Ростов-на-Дону
Контактная информация:

Здраствуйте!
Работаю в 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")

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

ЧТО Я ДЕЛАЮ не так?
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Пользовательские функции вызываемые из ячеек рабочего листа не изменяют значения других ячеек.
Почему для решения своей задачи, Вы не хотите использовать стандартную функцию рабочего листа, например =ЕСЛИ(A1=123,456789;"3333332";"")
BelkaJul
Сообщения: 23
Зарегистрирован: 08 авг 2005, 12:27
Откуда: Ростов-на-Дону
Контактная информация:

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

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

Реально ли такое?
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Всё что я говорил касательно пользовательских функций, относится и к стандартным функциям рабочего листа. И почему нельзя изначально ввести подобную формулу именно в нужную ячейку ...
BelkaJul
Сообщения: 23
Зарегистрирован: 08 авг 2005, 12:27
Откуда: Ростов-на-Дону
Контактная информация:

Решение мне подсказал uhm
на форуме http://bbs.vbstreets.ru/viewtopic.php?p=153499#153499

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

Уря! я счастлива!!!
Спасибо ВСЕМ, кто отозвался на мою проблему!
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Тоже самое, что сказал я, только вид сбоку.
Ответить