У меня есть пользовательская форма, созданная с использованием Excel VBA, которая используется для регистрации информации перед ее сохранением на листе. Вся информация, которую вводит пользователь, сохраняется в списке, а затем копируется на рабочий лист. Однако мне нужно скопировать каждый столбец информации в разные диапазоны на листе, они не все вместе, чтобы скопировать весь список с простыми свойствами .List
или .Value
.
Список имеет четыре столбца. Прямо сейчас я пытаюсь получить все значения, хранящиеся во втором столбце, чтобы скопировать их на рабочий лист. Количество строк в списке постоянно меняется в зависимости от того, сколько записей регистрирует пользователь. Я пробовал следующий фрагмент кода:
Range(FirstColumnRange).Resize(lstAllProducts.ListCount, 1).Value = lstAllProducts.List
Это отлично работает для получения всей информации в первом столбце списка. Хотя свойство .List
получает все значения в списке, использование свойства .Resize
с фиксированным значением столбца 1 просто сохраняет первый столбец на листе, игнорируя другие. Проблема в том, что я не могу сделать то же самое для других столбцов.
Я пробовал следующий код для получения значений второго столбца:
Range(SecondColumnRange).Resize(lstAllProducts.ListCount, 1).Value = lstAllProducts.List(lstAllProducts.ListIndex, 1)
Однако это работает, только если выбрана строка списка, и сохраняет только это значение. Есть ли способ изменить эту последнюю часть этого кода (lstAllProducts.List(lstAllProducts.ListIndex, 1)
), чтобы я мог получить все значения в соответствующем столбце (в данном случае второй столбец), не выбирая ничего в списке? Я был бы очень признателен за любое предложение. Кроме того, я бы предпочел решение, которое не требует зацикливания, подобное тому, которое я использовал для первого столбца.