|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
||||||
Не всегда срабатывает пользовательская функция22.10.2014, 14:41. Показов 5610. Ответов 36
Метки нет (Все метки)
Добрый день!
Слепил из имеющихся в инете функций Vlookup и FindSame пользовательскую функцию ВПР2 под свои нужды, посадил в модуль, но как то через раз она не работает, результат значения по нулям.
0
|
||||||
| 22.10.2014, 14:41 | |
|
Ответы с готовыми решениями:
36
В EXCEL не всегда срабатывает функция СУММЕСЛИ Пользовательская функция
|
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
||||
| 23.10.2014, 18:20 [ТС] | ||||
|
Добавлено через 10 минут проблема у меня в том что при смене связи, выдает ошибку функции ... и коллегам теперь сказать что труд будет облегчен....., а ведь хотел как лучше
0
|
||||
|
|
|
| 24.10.2014, 09:47 | |
|
1 . Речь идет про объект. Иначе это просто символьная строка, при закрытом файле источнике символьная строка не позволяет восстановить доступ к объекту. Ну и много всего прочего.
2. Как хочется. Для оптимизации - лучше отойти от начального замысла и делать зеркальные листы. Комментарий дан для теории. 3 . Так при ФлагПоз=0 Equality не задействована. Это замедление даст себя знать при приблизительном поиске. Общее замедление зависит от количества функций ВПР2 на листе и в книге. Так как "Application.Volatile True" они пересчитываются все многократно. 4. Архитектуру взаимодействия и работы с файлами надо продумывать до начала программирования. Частая смена связей тоже не лучшее решение. Лучше делать файл, в котором хоть 40 зеркальных листов, но чтобы положение источников всегда было строгим - в определенной сетевой папке. Еще лучше - когда названия файлов стандартизированы.
0
|
|
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
||
| 24.10.2014, 12:19 [ТС] | ||
|
Не подскажите как организовать выбор листов источника -файла, после выбора нужного файла ч/з Application.FileDialog(msoFileDialogOpen ) , затем в новом листе выложить данные и дать диапазону имя, чтобы в функции не менять наименование диапазона
0
|
||
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
||
| 24.10.2014, 23:01 [ТС] | ||
|
Добавлено через 8 часов 57 минут KoGG, у меня есть просьба к Вам, по данной теме Вы писали что Evaluate() у Вас работает, можете пример с использованием совместно функцией ВПР2, у меня выдает как Error 2015
0
|
||
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|
| 30.10.2014, 14:07 [ТС] | |
|
KoGG, если я не отниму у Вас времени, хотелось бы на данной функции ВПР2 увеличить передачу неопределенного количества аргументов в той же последовательности поскольку надо использовать 2 или даже 4 критерия отбора в зависимости от использования, но только для процедуры возможно использование Paramarray, не покажите как это сделать?
Или надо от количества критериев поиска, делать ВПР3 и т.д. При использовании функции столкнулся со следующей проблемой, при поиске приближенного слова "Акмолинский ОДРТ" в сравнении допустим "Акмолинская ОДРТ" и "Алматинская ОДРТ", или "ИТОГО по Акмолинской ОДРТ" выдает где одинаково а где разные результаты, понятно что при глубине поиска ФлагПоз это очевидно, у всех один корень, но как построит алгоритм: 1 Разбить предложения на слова (массив) Split, не факт что могут встретятся иные спец. символы кроме пробела 2. Использовать Instr или все таки Equality по самому длинному элементу 3. Или каждый элемент массива прогнать через Like Подскажите, пожалуйста, на каком нибудь примере Понимаю что лучшем вариантом будет полное совпадение, но тогда использовать исходники для сравнения со своими придется вручную, а их порядком 82 700 наименований Добавлено через 4 минуты подскажите какой нибудь алгоритм, в подмогу для работы
0
|
|
|
|
||||||
| 31.10.2014, 09:44 | ||||||
|
Вместо ParamArray можно использовать Опциональные аргументы, которые можно оставлять пустыми.
Короткий пример здесь не поможет. Надо предварительно обрабатыватьи шаблон поиска и массив сравнения, делая замены всех возможных окончаний, "ский" и "ская" на "ск"; удаляя слова паразиты "ИТОГО" и т.п. (если надо), заменяя все нестандартные символы на " ", а затем все двойные пробелы несколько раз на одинарные. Сравнивать уже стандартизированные строки, начиная слева на ФлагПоз. Вот процедурка, сортирующая слова в массиве, от самого длинного до самого короткого, а одинаковой длины по афавиту (может пригодится).
0
|
||||||
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|||||||||||||||||
| 02.11.2014, 07:41 [ТС] | |||||||||||||||||
0
|
|||||||||||||||||
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|
| 02.11.2014, 18:23 [ТС] | |
|
KoGG, поступил по Вашей рекомендации, но видимо наталкиваюсь на свои же ошибки в связи с плохим знанием приемов в VBA, и оптимизированных алгоритмов
Столкнулся со следующими ошибками 1. Не могу прописать алгоритм с пропуском пустых аргументов в функции 2. Отработка сравнения массива с массива/слова со словом
0
|
|
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
|||||||||||||||||||||
| 02.11.2014, 19:53 | |||||||||||||||||||||
Надо же проверять, что бы оба были
Да и проверять же надо АРГУМЕНТЫ функции
блок для 1 пары
0
|
|||||||||||||||||||||
|
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
|
|
| 02.11.2014, 20:16 | |
|
набросал пример вызова функции с опциональными параметрами и без них
0
|
|
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|
| 03.11.2014, 10:19 [ТС] | |
|
KoGG, задача получилось длинной ч/з множества условий, а вот с массивами никак у меня не получилось
Посмотрите пожалуйста
0
|
|
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|
| 03.11.2014, 14:39 [ТС] | |
|
Проверил, вроде задуманное осуществляет, но есть ли возможность оптимизировать его
0
|
|
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|
| 03.11.2014, 14:40 [ТС] | |
|
сам файл
0
|
|
|
|
||||||
| 05.11.2014, 17:10 | ||||||
|
Недостаточно комментариев, непонятна цель введения дополнительных параметров, так что существенно оптимизировать не могу.
А вот функцию Equality для приблизительных совпадений я переделал, теперь Sort_Words не нужен.
1
|
||||||
|
54 / 39 / 3
Регистрация: 25.01.2013
Сообщений: 368
|
|||
| 06.11.2014, 17:42 [ТС] | |||
|
В функции попытался реализовать возврат значения ячейки по строке, 1) по точному совпадению слов/предложений 2) по самому длинному слову с максимальной схожестью 3) предложение с предложением по совпавшим по корню словам Добавлено через 2 минуты KoGG, дополнительные параметры это вы про аргументы? Добавлено через 6 минут KoGG, Добавлено через 1 минуту сегодня выдала ошибку за №9 одна из функций, как отловить где она возникла? Добавлено через 1 час 10 минут KoGG, Константин спасибо! вопросы в вышеизложенном посте отпали Добавлено через 22 часа 48 минут KoGG, я уже не знаю как решить вопрос относительно функции, без того что многое только с вашей отзывчивостью и помощью решено по данному коду, могли бы вы заглянуть на тему Многократное вычисление функцией
0
|
|||
| 06.11.2014, 17:42 | |
|
Пользовательская функция Пользовательская функция Пользовательская функция с циклом Пользовательская функция в VBA
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|