Добрый день. Подскажите пожалуйста по поводу работы с динамическими массивами. Зачем в практике используется, скажем для определения верхней границы диапазона Ubound. Например, если нужно в одномерном массиве определить кол-во заполненных значений, для чего создают массив с неопределенной границей, затем прописывают ReDim с константой, а потом в цикле прописывают Ubound(massive), когда можно без использования Ubound просто воспользоваться командой Rows.Count? Ведь второй вариант существенно экономит время на написание кода, получается значительно лаконичнее. Например, если нужно определить верх границу диапазона, то я обычно прописываю например Cells(Rows.Count,1).End(xlUp).Row. Столько искал информации, но нигде не получается найти объяснение тому, зачем используется UBound и Lbound. Особенно когда например в коротком скрипте используется статичный массив, где заранее известна граница-константа, но затем когда перебирается цикл, то пишут к примеру For i =2 to Ubound(arr), почему если известна граница, не написать просто For i =2 to 10 например?
Заранее большое спасибо!
Добрый день. Подскажите пожалуйста по поводу работы с динамическими массивами. Зачем в практике используется, скажем для определения верхней границы диапазона Ubound. Например, если нужно в одномерном массиве определить кол-во заполненных значений, для чего создают массив с неопределенной границей, затем прописывают ReDim с константой, а потом в цикле прописывают Ubound(massive), когда можно без использования Ubound просто воспользоваться командой Rows.Count? Ведь второй вариант существенно экономит время на написание кода, получается значительно лаконичнее. Например, если нужно определить верх границу диапазона, то я обычно прописываю например Cells(Rows.Count,1).End(xlUp).Row. Столько искал информации, но нигде не получается найти объяснение тому, зачем используется UBound и Lbound. Особенно когда например в коротком скрипте используется статичный массив, где заранее известна граница-константа, но затем когда перебирается цикл, то пишут к примеру For i =2 to Ubound(arr), почему если известна граница, не написать просто For i =2 to 10 например?
sirenkodenis01, просто эти методы для разных объектов. Rows.Count - это подсчет строк на лист, а Ubound - максимальный индекс в массиве. А Lbound и Ubound используют еще и при изменении начального индекса м ассива с 0 на 1. Элементов будет столько же но индекс будет на 1 больше. При этом перенос кода в другой проект не требует изменений так как адаптируется само, а в другом проект может быть Option Base 1
sirenkodenis01, просто эти методы для разных объектов. Rows.Count - это подсчет строк на лист, а Ubound - максимальный индекс в массиве. А Lbound и Ubound используют еще и при изменении начального индекса м ассива с 0 на 1. Элементов будет столько же но индекс будет на 1 больше. При этом перенос кода в другой проект не требует изменений так как адаптируется само, а в другом проект может быть Option Base 1bmv98rus
Замечательный Временно просто медведь , процентов на 20.