2013-12-17 7 views
-1

У меня есть три блока кода, все одинаковые, кроме переменных, которые они ссылаются. Тем не менее, блок «Wrep» жалуется на ошибку компиляции на Wrep_match, говоря «Ожидаемый массив». Я не вижу никакой разницы между блоками Wrep и Orep:Excel VBA Ожидаемый массив

 If Orep_name = "" Then 
      If reps.exists(Orep_number) Then 
       Orep_match = Split(reps(Orep_number), ",") 
       If IsArray(Orep_match) Then 
        Orep_name = Orep_match(0) 
        Orep_team = Orep_match(1) 
       End If 
      End If 
     End If 

     If Wrep_number <> "" And Wrep_number <> "0" Then 
      If reps.exists(Wrep_number) Then 
       Wrep_match = Split(reps(Wrep_number), ",") 
       If IsArray(Wrep_match) Then 
        Wrep_name = Wrep_match(0) 
        Wrep_team = Wrep_match(1) 
       End If 
      End If 
     End If 
+0

Какова ценность 'Wrep_number'? – aphoria

+0

Wrep_number - строка из 1 символа. «reps» - это объект Scripting.Dictionary. – Brad

+1

Странно. Можете ли вы проверить 'LBound' и' UBound' Wrep_match? Вы только что установили, что это массив ... Поэтому я озадачен вами. Можете ли вы привести пример строки ввода, вызвавшей сбой? – Floris

ответ

0

Обнаружили ошибку. К коду не относится. Далее в Sub я объявил Srep_match, Orep_match, Wrep_match как Boolean. Не уверен, что Srep_match и Orep_match не были выполнены, но это был захват Wrep_match как не массив.

+1

Если вы делаете это 'Dim a, b, c как Boolean' в VBA, то только' c' является логическим: 'a' и' b' являются Variant. –

Смежные вопросы