Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
nickj
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 2
#1

Вывод из функции в другие ячейки

08.11.2013, 13:29. Просмотров 598. Ответов 4
Метки нет (Все метки)

Добрый день, уважаемые! Пишу функцию сравнения двух таблиц, на основе сравнения функция должна заполнить определенный столбец первой таблицы, так вот загвоздочка - вывод значений из функции в другие ячейки не работает, тогда как тот же самый вывод из процедуры срабатывает на ура. Продемонстрирую на примере:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Macros1()
Dim t, s As String
    Dim i() As String
    Dim RNG As Range
 
    Set RNG = Range("N1")
 
    RNG.Value = 11111
 
End Sub
 
Function Test(R as Range) As String
    
    R(1,1).Value = 11111
    Test = "OK"
 
End Function
В первом случае срабатывает отлично, во втором же при отладке программа завершается без сообщения об ошибке на строке
Visual Basic
1
R(1,1).Value = 11111
Есть ли какие нибудь пути обхода и решения данной ситуации? Буду благодарен любым советам, я себе всю голову сломал уже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2013, 13:29
Ответы с готовыми решениями:

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

Подсчитать количество строк и ввести данные в другие ячейки желательно средствами VBA
Есть файл в котором приходят записи оражевого цвета. Каждый раз файл приходит...

Вывод массива в ячейки
Добрый день. Подскажите, как найти сумму произведений двух одномерных массивов....

Вывод данных в ячейки Excel
Подскажите пожалуйста, как сделать так, чтобы при нажатии кнопки результат,...

Вывод последовательности чисел в ячейки
Народ,помогите пожалуйста, For q = 1 To k устанавливается...

4
SlavaRus
1091 / 205 / 29
Регистрация: 15.03.2010
Сообщений: 641
08.11.2013, 13:34 #2
Из функции нельзя ничего менять на листе. Можно функции присвоить массив и вывести на лист данные через формулу массива.
0
Hugo121
6278 / 2381 / 401
Регистрация: 19.10.2012
Сообщений: 7,032
08.11.2013, 13:38 #3
Есть один способ через replace - но забудьте...
Делайте всё процедурой. Ну или как подсказали - массивной UDF сразу на диапазон.
0
nickj
0 / 0 / 0
Регистрация: 08.11.2013
Сообщений: 2
08.11.2013, 13:47  [ТС] #4
Спасибо огромное за советы! Эх... так надеялся что обхитрить получиться, теперь придется форму делать для ввода адресов таблиц и столбцов поиска, все это связывать, с ф-цией в этом плане было бы гораздо проще, задал аргументы и вперед к победе!
А статических переменных там никаких объявить нельзя которые бы существовали до момента терминации самого родительского окна Excel???

ЗЫ Пытался даже в функции сделать вызов макроса который бы записывал результаты, ан нет, так тоже не пашет...
0
Hugo121
6278 / 2381 / 401
Регистрация: 19.10.2012
Сообщений: 7,032
08.11.2013, 13:54 #5
Ну макрос можно вызывать по событию например пересчёта.
С другой стороны, вместо формы можно использовать инпутбокс, например типа 8 - пусть юзер явно ткнёт в нужный диапазон.
0
08.11.2013, 13:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 13:54

Вывод данных в отдельные ячейки Excel
Подскажите пожалуйста можно ли сделать вывод данных в Visual Basic (в Excel) в...

вывод полученного значения в разные ячейки
Cells(1, 1).Value = n n=12345,но все это выводится в 1 ячейку. а как сразу...

Не могу сделать вывод результатов в ячейки
Произвожу расчет вот этой задачи: Наименование Выручка от реализации...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru