Я создал UserForm в VBA следующим образом: Посмотрите данные, основанные на нескольких переменных в VBA UserForm
Когда пользователь заполняет форму, запись будет сохранена на «Лист2». Для каждого идентификатора управления должно быть 3 возможных действия. Что я хочу сделать, так это то, что после того, как пользователи будут вводить имя Control ID и Activity, форма будет заполнена существующими данными из «Sheet2». Вот что я придумал, используя «Index»/«Match», но он возвращается с ошибкой «Тип несоответствия».
Private Sub Reg3_AfterUpdate()
With Me
.Reg2 = Application.WorksheetFunction.Index(Sheet2.Columns(3), Application.WorksheetFunction.Match(1, (Sheet2.Columns(2) = CLng(Me.Reg1)) * (Sheet2.Columns(4) = CLng(Me.Reg3)), 0))
End With
End Sub
Reg1 - это идентификатор управления, расположенный в столбце 2; Reg2 - полное имя, указанное в колонке 3; и Reg3 is Деятельность, расположенная в колонке 4.
Может кто-нибудь, пожалуйста, помогите мне?
спасибо за Ваш ответ. Однако предположение, что вы делаете, слишком жесткое. Я знаю только столбцы, в которые входят все переменные, но я не знаю строк. Вот почему я использовал «Index/Match». Мне нужно искать значения на основе двух условий (идентификатор управления и активность) – Cypress
У Томаса хорошее решение, вы также можете установить цикл – Felix