У меня очень сложный процесс, который включает в себя загрузку нескольких файлов из разных долей, объединение этих файлов в рабочие таблицы, манипулирование и вычисление связанной информации, а затем экспорт определенных полей (и вычислений) в виде отчетов в ряд книг Excel.VBA Выполнение кода из ComboBox
У меня этот процесс закодирован так, что я могу нажать одну кнопку, и весь процесс будет выполняться от конца до конца. У меня есть серия текстовых полей, которые функционируют как «индикаторы» (красный - эта часть не прошла, зеленый - эта часть преуспела). Как вы можете себе представить, код для всего процесса является ОГРОМНЫМ (32 страницы при копировании в MSWord) и трудно усваивается, когда у меня есть проблема.
Я понял, что хотел бы поместить код в стол, чтобы он был гораздо более модульным и более легким в использовании. Я установил поле со списком с действием, которое я хочу взять, и второе поле со списком с сообщением/файлом/объектом, с которым я хочу работать (например, Удалить - Таблица 2, Приобретение - Файл 1, Экспорт - Отчет 4). Мне удалось создать инструкцию SQL для выполнения простых вещей, таких как del *, из tbl_test и выполнить их из списков со списком без каких-либо проблем.
Что мне нужно знать, если есть способ поместить в таблицу (поле memo) по существу фрагмент кода, а затем выполнить этот код vba при выборе подходящих комбо.
IE код для 'Acquire - File1' является полностью кодом VBA; он отображает сетевой диск, находит файл, загружает файл и перемещает его в каталог.
IE код для 'Scrub - tblMain_Part1' представляет собой комбинацию кода vba и sql; он проверяет наличие файла (vba), если он находит его, он удаляет часть основной таблицы (sql) и добавляет содержимое найденного файла (sql), а затем обновляет монитор, указывая на то, что он (vba). Если файл не найден, он меняет окно монитора на красный и обновляет заголовок кнопки команды (vba)
Я НЕ гений с vba, но я придерживаюсь своего. Мыслительный процесс, который у меня был, состоял в том, что, если я могу по существу получить код, разбитый на управляемые куски в таблице, я мог бы вызвать код smippets в том порядке, если я хочу запустить весь процесс, или я мог бы просто повторно выполнить части кода при необходимости, выбрав комбинацию действий и отчета/файла/объекта.
Любые мысли/идеи приветствуются.
Таким образом, понятие было бы создать ряд общественных подлодки для отдельных участков кода. Внутри таблицы есть общедоступное имя и поле успеха (которое может быть связано с индикаторами монитора), но как бы я мог получить доступ к выполнению кода на основе комбо-полей action-report/file/object .... right теперь мне удалось использовать dlookup для выполнения простых SQL-запросов ... как я могу назвать публичный подраздел на основе этих критериев? –
В ближайшее время я улучшу свой ответ. – HelloW
@StevenCrandall: Один из вариантов: «Application.Run» NameOfSub ». Если вы хотите использовать функции вместо Subs (чтобы вы могли вернуть значение, например, логическое подтверждение успеха), вы можете использовать 'result = Eval (« NameOfFunction »)'. – Heinzi