2016-08-04 1 views
0

У меня было трудное время с ошибкой 438. Я пытаюсь сохранить свойство зарплаты каждому сотруднику в коллекции.Ошибка времени выполнения '438': Объект Не поддерживает это свойство или метод vba

Public Sub Click() 
    Dim employee As Collection 
    Set employee = New Collection 
    Dim n As Integer 
    Dim i As Integer 
    Dim E1 As Variant 
    Dim j As Integer 
    n = 528 
    Dim t As String 

    For i = 3 To n 
     t = "T" + CStr(i) 
     Set E1 = New clsEmployee 
     E1.salary = Sheets("A").Range(t).Value 
    Next i 

    End sub 
+0

Здесь нет кода, чтобы добавить что-либо в коллекцию 'employee' – barrowc

+1

Имеет ли' clsEmployee' * свойство 'зарплата'? Это публично? – Comintern

+0

@barrowc. Я даю значение жалованья пациенту с помощью этой строки: E1.salary = Таблицы («A»). Диапазон (t). Значение. – Zapata

ответ

1

Единственный способ, которым я могу видеть, очевидно, что получение конкретной ошибки во время выполнения с публикуемым кодом, если clsEmployee не имеет публичный .salary собственности. Это может быть подтверждено путем изменения объявления от ...

Dim E1 As Variant 

... чтобы:

Dim E1 As clsEmployee 

В этом случае он будет давать ошибку компиляции «метод или элемент данных не найден» вместо ошибка времени выполнения.

Решение состоит в том, чтобы добавить свойство, если оно не существует, или сделать его общедоступным, если это произойдет.