Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2014, 08:46   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Сообщение Проблема с формой

Доброе утро коллеги, не могли бы подсказать с решением вот какой проблемы, при инициализации формы я заполняю массив значений из одного столбца, таким образом:
Код:
Sheets("Лист1").Cells(5, 6).Resize(Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row - 4, 2).Value
Если же на этом листе нет информации, то есть массив пустой, нечем заполнять, то выдает ошибку именно на этой строке, массив мне нужен для дальнейшего сравнения на повторение реквизита, как избежать этой ошибки, при открытии формы.
manula вне форума Ответить с цитированием
Старый 13.05.2014, 08:53   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Можно так
Код:
Dim i
i = Sheets("Лист1").Cells(Rows.Count, 6).End(xlUp).Row
If i > 4 Then
  ... = Sheets("Лист1").Cells(5, 6).Resize(i - 4, 2).Value
End If
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.05.2014, 09:03   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

А дальше у меня есть обработка, которая уже использует этот массив, при вашей корректировки, возникает ошибка на этой строке:
Код:
For i = 1 To UBound(Mas)
Я понимаю, что цикл не может быть реализован, так как массив пустой, а как тут можно вывернуться? Вот сам фрагмент кода.
Код:
 
Dim max%
If Len(TbTn) < 6 Then
  For i = 1 To UBound(Mas)
        If Mas(i, 1) = TbTn.Value Then
           If Mas(i, 2) > max Then max = Mas(i, 2)
           End If
  Next
        TbNper.Text = max + 1
Else
        TbNper.Text = "1"
End If
manula вне форума Ответить с цитированием
Старый 13.05.2014, 10:30   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Все это можно поместить в If из моего кода. А может, не все - логику вашей программы знаете только Вы. Если лист пустой и массива нет - что должно быть в TbNper?
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.05.2014, 15:07   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Все это можно поместить в If из моего кода. А может, не все - логику вашей программы знаете только Вы. Если лист пустой и массива нет - что должно быть в TbNper?
В этом текстбоксе должна быть 1, если лист пустой и массива нет.
manula вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с формой MrFlaSh Microsoft Office Access 0 21.05.2013 22:27
Проблема с формой Полотенчик Microsoft Office Access 0 29.04.2012 11:51
проблема с формой for_dante C/C++ Базы данных 3 22.02.2012 18:28
Проблема с формой Koshir Microsoft Office Excel 1 27.05.2011 15:56
Проблема с формой rdama PHP 1 21.07.2010 09:34