Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Массив нулевой длины (пустой) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Массив нулевой длины (пустой) (Формулы/Formulas)
Массив нулевой длины (пустой)
Blin Дата: Среда, 22.04.2015, 17:50 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Здравствуйте.
Имею следующий код
Еще раз увижу непечатные выражения (на любом языке) - забаню вообще.
ubound lbound выдает ошибку. Почему? потому что массив нулевой?
Как проверить массив нулевой или нет?


Сообщение отредактировал _Boroda_ - Среда, 22.04.2015, 17:57
 
Ответить
СообщениеЗдравствуйте.
Имею следующий код
Еще раз увижу непечатные выражения (на любом языке) - забаню вообще.
ubound lbound выдает ошибку. Почему? потому что массив нулевой?
Как проверить массив нулевой или нет?

Автор - Blin
Дата добавления - 22.04.2015 в 17:50
Blin Дата: Среда, 22.04.2015, 18:04 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
извиняюсь
S[vba]
Код
ub check_arr()
Dim some_array()
If UBound(some_array) > 0 Then
MsgBox "array is exist!"
Else: MsgBox "array is not exist!"
End If
End Sub
[/vba]


Сообщение отредактировал Blin - Среда, 22.04.2015, 18:04
 
Ответить
Сообщениеизвиняюсь
S[vba]
Код
ub check_arr()
Dim some_array()
If UBound(some_array) > 0 Then
MsgBox "array is exist!"
Else: MsgBox "array is not exist!"
End If
End Sub
[/vba]

Автор - Blin
Дата добавления - 22.04.2015 в 18:04
krosav4ig Дата: Среда, 22.04.2015, 18:13 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
[vba]
Код
Sub check_ar()
     Dim some_array(), N&
     On Error Resume Next
     N = UBound(some_array)
     If Err > N Then
         MsgBox "some_array is not exist!": Err.Clear
         Else: MsgBox "some_array is exist!"
     End If
End Sub
[/vba]


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
Сообщение[vba]
Код
Sub check_ar()
     Dim some_array(), N&
     On Error Resume Next
     N = UBound(some_array)
     If Err > N Then
         MsgBox "some_array is not exist!": Err.Clear
         Else: MsgBox "some_array is exist!"
     End If
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 22.04.2015 в 18:13
alex77755 Дата: Среда, 22.04.2015, 21:17 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

[vba]
Код
If Not Not M Then Debug.Print LBound(M)
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение[vba]
Код
If Not Not M Then Debug.Print LBound(M)
[/vba]

Автор - alex77755
Дата добавления - 22.04.2015 в 21:17
KuklP Дата: Четверг, 23.04.2015, 06:12 | Сообщение № 5
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Мож стоит на IsArray проверить? B)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Четверг, 23.04.2015, 06:13
 
Ответить
СообщениеМож стоит на IsArray проверить? B)

Автор - KuklP
Дата добавления - 23.04.2015 в 06:12
KuklP Дата: Четверг, 23.04.2015, 06:26 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Типа:
[vba]
Код
Sub check_arr()
     Dim some_array
     If IsArray(some_array) Then
         MsgBox "array is exist!"
         MsgBox UBound(some_array)
     Else: MsgBox "array is not exist!"
         ReDim some_array(1)
         MsgBox UBound(some_array)
     End If
End Sub
[/vba] yes


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеТипа:
[vba]
Код
Sub check_arr()
     Dim some_array
     If IsArray(some_array) Then
         MsgBox "array is exist!"
         MsgBox UBound(some_array)
     Else: MsgBox "array is not exist!"
         ReDim some_array(1)
         MsgBox UBound(some_array)
     End If
End Sub
[/vba] yes

Автор - KuklP
Дата добавления - 23.04.2015 в 06:26
Blin Дата: Четверг, 23.04.2015, 13:06 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Мож стоит на IsArray проверить?


isarray проверяет есть ли массив. массив любой длины.
у меня и так есть массив, мне надо отличить массив нулевой от массива ненулевого.
ubound lbound вылетают при проверке нулевого массива (вот же бред) (в тоже время isarray выдает тру на этот же массив). Традиционно спасают подпорки в виде on error
 
Ответить
Сообщение
Мож стоит на IsArray проверить?


isarray проверяет есть ли массив. массив любой длины.
у меня и так есть массив, мне надо отличить массив нулевой от массива ненулевого.
ubound lbound вылетают при проверке нулевого массива (вот же бред) (в тоже время isarray выдает тру на этот же массив). Традиционно спасают подпорки в виде on error

Автор - Blin
Дата добавления - 23.04.2015 в 13:06
RAN Дата: Четверг, 23.04.2015, 13:29 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Вы немного путаете.
Нулевой массив это
[vba]
Код
Dim some_array(0)
[/vba]
А [vba]
Код
Dim some_array()
[/vba] это массив не определенной размерности.


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВы немного путаете.
Нулевой массив это
[vba]
Код
Dim some_array(0)
[/vba]
А [vba]
Код
Dim some_array()
[/vba] это массив не определенной размерности.

Автор - RAN
Дата добавления - 23.04.2015 в 13:29
Blin Дата: Четверг, 23.04.2015, 14:56 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
да да. неопределенной размерности
 
Ответить
Сообщениеда да. неопределенной размерности

Автор - Blin
Дата добавления - 23.04.2015 в 14:56
KuklP Дата: Четверг, 23.04.2015, 18:40 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Blin, Вы мой код в сообщении №6 смотрели-пробовали? В чем разница поняли?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеBlin, Вы мой код в сообщении №6 смотрели-пробовали? В чем разница поняли?

Автор - KuklP
Дата добавления - 23.04.2015 в 18:40
RAN Дата: Четверг, 23.04.2015, 18:49 | Сообщение № 11
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Серег
[vba]
Код
Dim some_array()
[/vba]
всегда
[vba]
Код
IsArray
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСерег
[vba]
Код
Dim some_array()
[/vba]
всегда
[vba]
Код
IsArray
[/vba]

Автор - RAN
Дата добавления - 23.04.2015 в 18:49
KuklP Дата: Четверг, 23.04.2015, 18:56 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Еще один писатель-нечитатель. Андрюх, нафига обьявлять динамический массив? Объяви вариант и проверяй на isarray.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЕще один писатель-нечитатель. Андрюх, нафига обьявлять динамический массив? Объяви вариант и проверяй на isarray.

Автор - KuklP
Дата добавления - 23.04.2015 в 18:56
RAN Дата: Четверг, 23.04.2015, 18:59 | Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Дык думаешь я не видел? :D
Чел хочет именно "()"


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Четверг, 23.04.2015, 19:00
 
Ответить
СообщениеДык думаешь я не видел? :D
Чел хочет именно "()"

Автор - RAN
Дата добавления - 23.04.2015 в 18:59
KuklP Дата: Четверг, 23.04.2015, 19:09 | Сообщение № 14
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
И еще - Dim a(0) - это не нулевой массив. Это вполне обычный статический массив с одной ячейкой и базой 0. То же, что
Dim a(0 To 0)
Так работает:
[vba]
Код
Public Sub www()
     Dim a(0)
     MsgBox UBound(a)
End Sub
[/vba]
Но добавь в разделе деклараций Option Base 1 и будет ошибка :)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеИ еще - Dim a(0) - это не нулевой массив. Это вполне обычный статический массив с одной ячейкой и базой 0. То же, что
Dim a(0 To 0)
Так работает:
[vba]
Код
Public Sub www()
     Dim a(0)
     MsgBox UBound(a)
End Sub
[/vba]
Но добавь в разделе деклараций Option Base 1 и будет ошибка :)

Автор - KuklP
Дата добавления - 23.04.2015 в 19:09
KuklP Дата: Четверг, 23.04.2015, 19:11 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Чел хочет именно "()"
Откуда он знает, чего он хочет? Он хочет, чтоб работало. :D


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Чел хочет именно "()"
Откуда он знает, чего он хочет? Он хочет, чтоб работало. :D

Автор - KuklP
Дата добавления - 23.04.2015 в 19:11
RAN Дата: Четверг, 23.04.2015, 19:44 | Сообщение № 16
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
И я не знаю.
Для меня вообще загадка, зачем эта проверка. :)


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИ я не знаю.
Для меня вообще загадка, зачем эта проверка. :)

Автор - RAN
Дата добавления - 23.04.2015 в 19:44
alex77755 Дата: Четверг, 23.04.2015, 21:10 | Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Dim a()
Dim a(0 To 0)
Не одно и то же
После
Dim a() и ReDim a(0)
debug.print ubound(a) ошибки не вызовет
А проверка If Not Not M Then Debug.Print LBound(M) решает этот вопрос
Сам когда-то на этом долго не мог разрулить


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеDim a()
Dim a(0 To 0)
Не одно и то же
После
Dim a() и ReDim a(0)
debug.print ubound(a) ошибки не вызовет
А проверка If Not Not M Then Debug.Print LBound(M) решает этот вопрос
Сам когда-то на этом долго не мог разрулить

Автор - alex77755
Дата добавления - 23.04.2015 в 21:10
KuklP Дата: Четверг, 23.04.2015, 21:16 | Сообщение № 18
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Dim a()
Dim a(0 To 0)
Не одно и то же
Алекс, паршивая привычка искажать чужие слова.
Dim a(0) - это не нулевой массив. Это вполне обычный статический массив с одной ячейкой и базой 0. То же, что
Dim a(0 To 0)

Не совсем так, как у Вас, правда?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Dim a()
Dim a(0 To 0)
Не одно и то же
Алекс, паршивая привычка искажать чужие слова.
Dim a(0) - это не нулевой массив. Это вполне обычный статический массив с одной ячейкой и базой 0. То же, что
Dim a(0 To 0)

Не совсем так, как у Вас, правда?

Автор - KuklP
Дата добавления - 23.04.2015 в 21:16
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Массив нулевой длины (пустой) (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!