Я пытаюсь написать код, который преобразует диапазон ввода в массив, а затем передает этот массив в RowSource для списка в моей форме.Ошибка свойства RowSource vba
Согласно MSDN свойство «RowSource» для списка/со списком должен принимать массивы, так что я не знаю, почему Im получаю ошибку во время выполнения здесь:
Option Explicit
Sub test()
Dim rng As Range
Dim myarray As Variant
Set rng = Worksheets("Sheet1").Range("List")
myarray = RangeToArray(Range("List"))
UserForm1.ListBox1.RowSource = "myarray"
End Sub
Function RangeToArray(inputRange As Range) As Variant
Dim inputArray As Variant
inputArray = inputRange.Value
'operations on inputArray
'...'
RangeToArray = inputArray
End Function
Спасибо за ответ. Я попытаюсь это сделать и вернуться к вам. Пожалуйста, попробуйте это на VBA: Option Explicit Sub Test() UserForm1.ListBox1.RowSource = ActiveSheet.Range ("A1: A3") End Sub вы увидите, что вы получите тип несовпадения ошибки – user32882
I знаете, что даст ошибку, потому что он пытается назначить свойство по умолчанию диапазона, которое представляет собой «Значение», массив. Для параметра «RowSource» должен быть установлен допустимый адрес диапазона, который может быть «A1» или именем именованного диапазона. Учитывая, что ваше сообщение указывает, что вы хотите манипулировать данными, полученными из диапазона, перед загрузкой в список, использование свойства «Список» - единственный способ –