Результат назначения объекта "Требуется объект" в VB6 - PullRequest
0 голосов
/ 23 мая 2018

У меня есть следующая функция для анализа аргументов командной строки в vb6

Private Function GetProcessParams() As Variant
    Dim i As Integer
    Dim result() As Variant
    Select Case Command
        Case "-all"
            Set GetProcessParams = allProcess.Items
            Exit Function
        Case "-new"
            For i = 0 To allProcess.Count
                Dim tmp As TableInfo
                Set tmp = allProcess(i)
                If tmp.isNew Then
                    ReDim result(i + 1)
                    Set result(i) = tmp
                End If
            Next i
            Set GetProcessParams = result
            Exit Function
        Case Else
            Dim subset() As String
            subset = Split(Command, ",")
            ReDim result(UBound(subset))
            Dim val As String
            For i = 0 To UBound(subset)
                If IsNumeric(subset(i)) Then
                    Set result(i) = allProcess(CInt(subset(i)))
                End If
            Next i
            Set GetProcessParams = result
            Exit Function
    End Select
End Function

Во время выполнения она останавливается на строке "Set GetProcessParams = result" в случае "-new" с сообщением "Ошибка компиляции: Objectтребуется "

Что не так?

1 Ответ

0 голосов
/ 25 мая 2018

Оператор Set предназначен только для назначения ссылок на объекты.Ваша переменная result представляет собой массив вариантов, а массивы не являются ссылками на объекты в VB.Если вы хотите скопировать массив в собственную переменную, , вам нужно только обычное присваивание без ключевого слова Set.

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