Я работаю в Excel 2010, разрабатывая пользовательскую форму для ввода данных в электронную таблицу (мы не доверяем каждому конечному пользователю правильно вводить свои данные в открытую электронные таблицы).Используйте цикл, чтобы поместить данные в несколько разных текстовых полей
В настоящем время, каждый из текстового поля называются txtDataVal1 к N, с номером увеличивающимся с каждым новым поля, и следующий код используется для перемещения данных из текстового поля в таблицу:
'intRowSelect is given a value elsewhere, by the user's list box selection
Cells(intRowSelect, 2).Value = txtDataVal1.Value
Cells(intRowSelect, 3).Value = txtDataVal2.Value
....
Cells(intRowSelect, 20).Value = txtDataVal20.value
Моего вопрос: Есть ли способ написать простой цикл для увеличения числового значения в конце txtDataVal, поэтому у меня нет более 100 строк громоздкого кода выше?
Например (я знаю, что это нефункциональные пример, рассмотрим его псевдо-код):
Dim i as Integer
Dim intColumnSelect as Integer
intColumnSelect = 1
i = 1
Do While i < intColumnSelect
intColumnSelect = intColumnSelect + 1
Cells(intRowSelect, intColumnSelect).Value = "txtDataVal" + i.Value
i = i + 1
Loop
Теперь я столкнулся с непредвиденной ошибкой. Используя приведенный выше код, я получаю «Ошибка времени выполнения» 13: Тип Несоответствие ». Кажется, у вас проблема с «txtDataVal» или + i, любая идея? – Munch
Моя вина. Я использовал '+' вместо '&'. Один добавляет вещи вместе с другими конкатенатами ... не могу добавить строку :(Я обновил ответ. – JNevill
Это билет! Спасибо. Я обнаружил недостаток в моей логике, хотя, где i и intColumnSelect в конечном итоге превысят количество текстовые поля в форме, вызывая ошибку (текстовое поле не существует для записи в!). Чтобы исправить это, я подсчитал используемые столбцы заголовков на листе с [кодом, который подсчитывает непустые столбцы, найденные здесь] (http: // stackoverflow.com/questions/6897347/finding-the-number-of-non-blank-columns-in-an-excel-sheet-using-vba) Код по-прежнему обрабатывает динамический номер столбца, а также динамическое число текстовые поля. Просто упомянуть будущих кодеров, которые находят это. Большое спасибо, J! – Munch