Загадочное изменение типа переменной - PullRequest
0 голосов
/ 26 мая 2020

У меня есть подпрограмма с настроенной вариантной переменной, которая меняет свой тип на полпути по очевидной причине.

У меня есть переменные, объявленные в начале процедуры:

 Dim acsp As Variant 
 Dim oldmaster As Variant 
 Dim acontacts As Variant
 Dim avp As Variant
 Dim acctst As Variant 
 Dim ashipto As Variant 
 Dim abillto As Variant
 Dim found, found1, found2 As Boolean

 acsp = Sheet6.UsedRange.Value2 
 acontacts = Sheet5.UsedRange.Value2 
 avp  = Sheet9.UsedRange.Value2 
 acctst = Sheet20.UsedRange.Value2 
 ashipto = Sheet11.UsedRange.Value 
 abillto = Sheet15.UsedRange.Value

Код запускается и в зависимости от условия IF он может вызвать этот код (внутри того же подзаголовка):

 c = UBound(acsp) + 1   
 shipto = Trim(UCase(acctst(aa, 27)))  
 billto = Trim(UCase(acctst(aa, 38)))
 shiptofound = False   
 For shiptorow = 2 To UBound(ashipto)
  ashipto1 = Trim(UCase(ashipto(shiptorow, 2)))   
  If ashipto1 = shipto  Then
     shiptofound = True
     Exit For    
  End If
 Next shiptorow

До строки shiptofound = False вариант abillto отображается как вариант / вариант (от 1 до 677 , От 1 до 18), что верно. Но как только он запускает строку For shiptorow = 2 To UBound (ashipto), тогда вариант abillto изменяется на вариант типа / long со значением 2? До этого кода в коде не использовалось abillto.

Почему VBA это делает?

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