Страницы: 1
RSS
UBound
 
Приветствую всех.  
Ну никак не могу разобраться.  
Если задаю массив так, то  
Lrw = Rows(Rows.Count).End(xlUp).Row  
arr = Range(Cells(1, 1), Cells(Lrw, 1))  
a = UBound(arr)________ = последний эл-т  
а если так  
LCol = Columns(Columns.Count).End(xlToLeft).Column  
arr1 = Range(Cells(1, 1), Cells(1, LCol))  
a = UBound(arr1)_______ = 1  
 
в чем ошибка? И как определить последний эл-т масива из строки?
 
Правильно будет так:  
 
 
Lrw = Rows(Rows.Count).End(xlUp).Row  
arr = Range(Cells(1, 1), Cells(Lrw, 1)).Value  
a = arr(UBound(arr, 1), 1) ' последний эл-т  
 
 
LCol = Columns(Columns.Count).End(xlToLeft).Column  
arr1 = Range(Cells(1, 1), Cells(1, LCol)).Value  
a = arr1(1, UBound(arr1, 1)) ' последний эл-т
 
Массив, полученный присвоением диапазона, всегда двумерный.  
UBound(arr) эквивалентно UBound(arr, 1), и это число строк.  
Во втором случае надо  
UBound(arr, 2)
 
Сенкс!
 
В окне Locals хорошо видна разница между массивами -    
первый (1 to 18, 1 to 1)  
второй (1 to 1, 1 to 18)  
 
Это на моих данных.
Страницы: 1
Читают тему
Наверх
Loading...