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

VLookup с параметрами через переменные из значений функции

11.07.2013, 14:47. Показов 4835. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу никак заставить работать VLookup с данными указанными в параметрах функции.

Visual Basic
1
2
3
4
5
6
Function НайдиМеня(lValue As Data, rTable As Range) As Date
Dim FindMe As Range, InMe As Range
FindMe = Range(lValue)
InMe = Range(rTable)
НайдиМеня = Application.WorksheetFunction.VLookup(FindMe, InMe, 1, False)
End Function
Подскажите что не так делаю, заранее благодарен.

Добавлено через 2 часа 13 минут
Народ, хелп, помогите разобраться.

Добавлено через 22 часа 11 минут
все разобрался, как всегда все проще чем казалось, а переменные вовсе не нужны:

Visual Basic
1
2
3
Function НайдиМеня(lValue As Variant, rTable As Range) As Date
НайдиМеня = Application.WorksheetFunction.VLookup(lValue, rTable, 1, False)
End Function
То есть достаточно было правильно указать тип параметра lValue As Variant, а не Data или Range
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.07.2013, 14:47
Ответы с готовыми решениями:

Описать процедуру печати таблицы, параметрами которой являются функции-процедурные переменные
описать процедуру печати таблицы, параметрами которой являются функции-процедурные переменные, вычисляют: sin x + tg x; sin x - tg x. ...

Описать процедуру печати таблицы, параметрами которой являются функции-процедурные переменные, вычисляют sin x
Описать процедуру печати таблицы, параметрами которой являются функции-процедурные переменные, вычисляют sin x; cos x, x и y зминюютьcя в...

Реализовать функции с опциональными параметрами и именованными параметрами
Нужно задачу написать, про ref и out ничего пока не знаю, не понимаю их.. Реализовать функции с опциональными параметрами и...

5
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
11.07.2013, 18:58  [ТС]
Теперь несколько другая проблема...

Массив условий, который планирую использовать несколько раз в коде прописал через функцию SimpleD,
далее в основной функции (MakeMeHappy) обращаюсь к ней, где она работает нормально и возвращает то что и нужно, но проблема возникает тогда когда я эту функцию указываю как критерий для поиска в vlookup.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Function SimpleD(ByRef НачальнаяДата)
If Weekday(НачальнаяДата, vbMonday) = 5 Then
    SimpleD = НачальнаяДата + 3
Else
    If Weekday(НачальнаяДата, vbMonday) = 6 Then
        SimpleD = НачальнаяДата + 2
    Else
        SimpleD = НачальнаяДата + 1
    End If
End If
End Function
 
 
Function MakeMeHappy(НачальнаяДата As Variant, КрасныеДни As Range)
Dim FindRedDay As Variant
FindRedDay = Application.WorksheetFunction.VLookup(SimpleD(НачальнаяДата), КрасныеДни, 1, False)
 
MakeMeHappy= FindRedDay
 
End Function
Ячейка с функцией ругается #ЗНАЧ!

ЗЫ Пробовал и функцию SimpleD определять как Variant и в функции MakeMeHappy определял ее через переменную с тем же типом данных, все равно ноль на массу
Вложения
Тип файла: zip MakeMeHappy.zip (18.7 Кб, 8 просмотров)
0
призрак
 Аватар для ikki
3266 / 894 / 119
Регистрация: 11.05.2012
Сообщений: 1,702
Записей в блоге: 2
11.07.2013, 22:18
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function SimpleD(ByRef НачальнаяДата) As Date
    If Weekday(НачальнаяДата, vbMonday) = 5 Then
        SimpleD = НачальнаяДата + 3
    Else
        If Weekday(НачальнаяДата, vbMonday) = 6 Then
            SimpleD = НачальнаяДата + 2
        Else
            SimpleD = НачальнаяДата + 1
        End If
    End If
End Function
 
Function MakeMeHappy(НачальнаяДата As Date, КрасныеДни As Range)
    Dim FindRedDay As Date
    FindRedDay = Application.WorksheetFunction.VLookup(CLng(SimpleD(НачальнаяДата)), КрасныеДни, 1, False)
    MakeMeHappy = FindRedDay
End Function
пс. логика работы обеих функций и основная цель данного изврата так и остались для меня загадкой
1
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
13.08.2013, 14:44  [ТС]
Изврат в том, что хочу прописать функцию для возвращения следующего рабочего дня исходя из предыдущей даты. Простую функцию проскакивающую субботу и воскресенье тут не сложно было написать. А вот такую которая бы учитывала диапазон дат красных дней календаря и еще круче, что бы учитывала диапазон дат переносов (отработок на выходных). То как оказалось не так уж и просто это сделать.

С помощью логических функций и функции ВПР или иными словами штатными способами эту задачу удалось решить, но сами понимаете итоговая формула настолько громадная, что рациональность ее использования под хорошим вопросом. Совсем другое дело если запихнуть эти все условия в VBA и сделать пользовательскую функцию...

Прилагаю результаты моих извратов =)))
0
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
14.08.2013, 10:28  [ТС]
Цитата Сообщение от AleX_X891 Посмотреть сообщение
Прилагаю результаты моих извратов =)))
результаты представлены только в формульном решении. Вопрос на счет пользовательской функции остается открыт.
0
6998 / 2896 / 555
Регистрация: 19.10.2012
Сообщений: 8,804
14.08.2013, 10:37
Можете показать файл без лишнего мусора? Чтоб даже мне понятно было, где там что из чего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2013, 10:37
Помогаю со студенческими работами здесь

Как запустить на кнопку приложение с параметрами и чтобы считывались переменные?
1) Как запустить на кнопку приложение с параметрами и чтобы считывались переменные? exe файл - gzdoom.exe string files =...

Вывести таблицу значений функции через цикл do/while
Написать программу, которая реализует такой алгоритм. Выводит на экран меню: 1. Ввод данных 2. Вычисление функции 3. Завершение ...

Переменные,значение функции,вспомогательные переменные.
1)Даны переменные A,B,C.Изменить их значения,переместив их содержимое из A-в B,B-в C,C-в A,и вывести новые значения переменных A,B,C. ...

Рассчитать значения функции для значений Х и У через таблицу подстановки
Как это реализовать ? )

Составить программу для вычисления и печати значений функции. Вычислить 8 значений функции на заданном интервале
y = 2 - e^2x + e^-2x / e^2 + e^-2 Контрольное значение : x - 1, y - 1, Интервал x : xmin - 1, xmax - 1; Составить программу для...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru