Скопируйте значения из второго столбца списка на лист Excel VBA - PullRequest
2 голосов
/ 09 июля 2020

У меня есть пользовательская форма, созданная с использованием 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)), чтобы я мог получить все значения в соответствующем столбце (в данном случае второй столбец), не выбирая ничего в списке? Я был бы очень признателен за любое предложение. Кроме того, я бы предпочел решение, которое не требует зацикливания, подобное тому, которое я использовал для первого столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...