Заполнение списка списком с данными из листа - PullRequest
0 голосов
/ 25 октября 2011

В настоящее время я получаю следующую ошибку, когда запускаю код (показанный ниже)

Type Mismatch

Чтобы дать немного контекста, на рабочем месте CourseSelection есть строка 3, заполненная от A до F. Я хотел быпоместите записи из A2: A6 в список.Тем не менее, я хочу обобщить этот процесс и сделать его динамическим, чтобы включить дополнительные категории, если они добавляются после столбца F. Поэтому мне нужен автоматический способ сделать это с помощью кода, аналогичного приведенному ниже.Тем не менее, я получаю сообщения об ошибках, и я не уверен, почему.

Я определил TaskList как Range до этого кода.При наведении курсора на xlToRight при запуске кода я вижу очень большое отрицательное значение (-4191).Я не уверен, является ли это частью проблемы.

With Worksheets(CourseSelection).Range("A3")
    Set TaskList = Range(.Offset(0, 1), .End(xlToRight))
End With

frmTaskSelection.lbTasks.RowSource = TaskList

1 Ответ

1 голос
/ 25 октября 2011

Если у вас нет CourseSelection, определенной как константа, возвращающая существующее имя листа, код не будет работать на With Worksheets(CourseSelection).Range("A3"). Если вы хотите работать с именем листа CourseSelection, вы должны использовать With Worksheets("CourseSelection").Range("A3").

Если вы получили сообщение об ошибке, хотя вы, кажется, прошли эту точку, и ваш код, похоже, не работает на frmTaskSelection.lbTasks.RowSource = TaskList. Это потому, что RowSource ожидает адрес

Если вы хотели заполнить значения из листа с именем CourseSelection от A3 до Ax, где x - последняя использованная ячейка, тогда этот код будет работать с любого активного листа.

Обратите внимание, что мне было неясно, как вы хотели использовать дополнительные значения из столбца F в дополнение к A2: A6. Если вы можете предоставить дальнейшее руководство / изображение и т. Д., То приведенный ниже код может быть адаптирован для соответствия

Sub test()
    Dim ws As Worksheet
    Dim rng1 As Range
    Set ws = Worksheets("CourseSelection")
    Set rng1 = ws.Range(ws.[a3], ws.Cells(Rows.Count, "A").End(xlUp))
    frmTaskSelection.lbTasks.RowSource = "'" & ws.Name & "'!" & rng1.Address
    frmTaskSelection.Show
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...