2015-08-14 2 views
0

Я написал код, который:Можете ли вы передать массив из Sub в форму?

  • позволяет импортировать пользовательские текстовый файл или электронную таблицу в качестве источника входного сигнала.

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

  • Выполняет действия программы (которая в основном проверяет некоторые вещи на веб-сайте, а затем обновляет веб-сайт, если критерии выполнены).

Вещь, которую я должен был «обуздать», - это побуждение к тому, где найти данные. Сначала я создал простой массив для захвата имен полей из источника ввода, но затем я ударил камень преткновения о том, как его получить в пользовательской форме и в поле со списком.

В конце концов я решил создать временную таблицу ANOTHER и вместо того, чтобы вставлять имена полей в массив, сохраняя их в наборе записей, к которым затем можно получить доступ из Userform, создав другой набор записей и запросив его и удалив все из набор записей, кроме выбранного.

Несмотря на то, что он работает, и извне вы не знаете, что он делает, поскольку данные, связанные с данным, очень низкие, это очень быстро.

Я просто знаю, что, вероятно, лучшее решение, и я бы предпочел задать вопрос и узнать о своей ошибке/недосмотре, пока он в моем сознании.

С уважением,

Jeff.

+0

Возможно использовать свойство Let and Propety Get - http://stackoverflow.com/questions/31860256/vba-multiple-userforms-referencing-same-code/31861128#31861128 или даже лучше - http://peltiertech.com/ Excel/PropertyProcedures.html –

ответ

0

В поле со списком есть свойство «тип источника строки» на вкладке DATA. По умолчанию isis table query.

Однако вы можете установить его в «Список значений», который принимает строку значений, отображаемую в поле со списком.

Так что, если он был установлен в «1,2,3,4,5,6», вы получили бы список из столбцов указанных значений.

Другие свойства, которые могут потребоваться для настройки: ширина столбцов, количество столбцов и связанный столбец.

Это простой способ заполнить комбо с коротким списком значений.

Не забудьте использовать метод requery/refresh, если вам нужно.

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

Список может быть заполнен так же, как и поле со списком.

+0

Как бы вы получили свой список от Sub до Userform? –

+0

Вместо использования подформы замените его на окно списка, которое может очень похож на подформу, иначе вы должны сделать то, что вы сделали с временной таблицей. – HarveyFrench

1

Если я правильно понял, вы хотите отобразить имена полей из таблицы в поле со списком. Если это правильно, просто установите для свойства Row source Type в поле со списком поле «Список полей» и установите Row Source в таблицу.

Смежные вопросы