Я немного работал с пользовательскими формами в VBA и знаю некоторые из трюков для циклического перехода через все элементы управления. Тем не менее, я сталкиваюсь с проблемами с этим, и мне нужен способ считывать значения строк строки и причины в массивы на основе значений «Площадь» и «Сдвиг». Возможные значения для этих двух столбцов приведены на рисунке.
В основном то, что мне нужно что-то вродеПетля через один столбец Userform
For Each ctl In Me.Controls
If somectl.Value = "Kitting" And otherctl.Value = "1" Then
ReDim Preserve somearray(i)
somearray(i) = ctl.Value
End If
Next ctl
Проблема в том, что эта форма (надеюсь) фактически представляет собой «Непрерывную форму», и каждая запись содержит элементы управления с тем же именем. Я говорю «надеюсь», потому что, если ваша таблица настроена так, что каждое управляющее имя на этом снимке уникально, вам нужно взять класс дизайна базы данных. Можете ли вы сделать это с помощью запроса или даже VBA, если это абсолютно необходимо? –
@JohnnyBones Каждый столбец имеет уникальное имя. Как и в столбце «area», имена: ** areadd1, areaadd2 ** и т. Д. И нет, я не могу использовать запрос. – AggieIE
Когда вы говорите: «Нужен способ прочитать значения столбцов строки и причины в массивах, основанных на значениях« Площадь »и« Сдвиг », можете ли вы немного расшириться? Я не уверен, что происходит в массиве. Вы только хотите поместить поля Line и Reason в массив, когда Area = «Kitting» и Shift = «1»? –