Вчера этот код работал отлично, но теперь я получаю ошибку времени выполнения несоответствия типов 13. Я пытался исследовать проблему, но недостаточно хорошо понимаю vba, чтобы решить ее.
Все, что я изменил сегодня, - это имена некоторых листов, которые я сейчас отменил, но они все равно не будут работать.
Dim WKB As Workbook
Dim SHT_data_WORKERS As Worksheet
Set WKB = ActiveWorkbook
Set SHT_data_WORKERS = WKB.Sheets("data_WORKERS")
Dim vArr As Variant
Dim i As Integer
vArr = WorksheetFunction.Transpose(SHT_data_WORKERS.Range("B2:B" & SHT_data_WORKERS.Range("B" & Rows.Count).End(xlUp).Row).Value)
With form_addTask.form_addTask_Worker
.Clear
For i = LBound(vArr) To UBound(vArr)
.AddItem vArr(i)
Next i
End With
РЕДАКТИРОВАТЬ -
Я сузил проблему до следующей строки:
vArr = WorksheetFunction.Transpose(SHT_data_WORKERS.Range("B2:B" & SHT_data_WORKERS.Range("B" & Rows.Count).End(xlUp).Row).Value)
Я не получаю никаких ошибок, если на странице SHT_data_WORKERS заполнены две или более строк.
Итак, это структура страницы SHT_data_WORKERS, откуда список извлекается во время ошибки;
ID | Name | Role
1 Chris Engineer
Однако это работает, когда введены две строки;
ID | Name | Role
1 Chris Engineer
2 Test Engineer
Кто-нибудь сейчас как отформатировать код для работы, когда есть только 1 запись?
Спасибо