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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.03.2008, 09:09   #1
tat-besidovska
Пользователь
 
Регистрация: 17.01.2008
Сообщений: 29
Вопрос VBA Excel 2003

Здравствуйте!!! Подскажите, пожалуйтса, каким образом можно с помощью VBA определить последнюю непустую ячейку в столбце определенного диапазона, например столбец("B6:B12"), заранее благодарю за помощь
tat-besidovska вне форума
Старый 03.03.2008, 09:25   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Конкретно для Вашего диапазона, например так :
Код:
MsgBox Range("B13").End(xlUp).Row
Но если весь диапазон пуст - то полученное значение будет меньше, чем Ваша начальная строка (в данном случае 6). Если нужно - сравнивайте, а дальше по-необходимости.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 03.03.2008, 09:40   #3
tat-besidovska
Пользователь
 
Регистрация: 17.01.2008
Сообщений: 29
По умолчанию

Дело в том,что выше и ниже указанного диапазона стоят значения, которые не должны учавствовать в макросе
tat-besidovska вне форума
Старый 03.03.2008, 09:54   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Тогда с использованием цикла. Например, так:
Код:
For i = 12 To 6 Step -1
        If Not IsEmpty(Cells(i, "B")) Then Exit For
    Next
    
    MsgBox i
P.S. Если диапазон пуст, то i = 5 (строка перед Вашим диапазоном).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 03.03.2008, 10:06   #5
tat-besidovska
Пользователь
 
Регистрация: 17.01.2008
Сообщений: 29
По умолчанию

Да, я поняла, только мне нужно именно значение ячейки
tat-besidovska вне форума
Старый 03.03.2008, 10:51   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если известны строка и столбец, то какая проблема?
После выхода из цикла:
Код:
X = Cells(i, "B").Value ' это значение
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 07.06.2008, 11:34   #7
katrin1548
 
Регистрация: 07.06.2008
Сообщений: 8
По умолчанию Помогите советом

Подскажите пожалуйста. Совсем запуталась (никогда не работала с VBA а тут пришлось).

Есь ListBox в который выбираются фамилии (может быть выбрано от одного до бесконечности). И есть папка с файлами (filename=Фамилия.xls). Нужно задать цикл с первого по последнее значение ListBox.
1. Проверить есть ли файл с такой фамилией
2. Если нет создать по шаблону
3. Если есть добавить информацию

P.S. основная проблема заключается в вытягивании значений из ListBox и пункте 1. Столько всего перепробовала...но не получается. Наверняка по незнанию что-то не так делаю...(((

Последний раз редактировалось katrin1548; 07.06.2008 в 11:54.
katrin1548 вне форума
Старый 07.06.2008, 12:27   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
вытягивании значений из ListBox
может вот это?
Код:
iIndex = ListBox1.ListIndex
iFam = ListBox1.List(iIndex, 0)
MsgBox iFam
и перебрать все в цикле
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 07.06.2008 в 13:03.
VictorM вне форума
Старый 07.06.2008, 13:14   #9
katrin1548
 
Регистрация: 07.06.2008
Сообщений: 8
По умолчанию

не работает((

у меня получается выбрать первое значение ListBox и вывести его в MsgBox, а когда в ListBox несколько значений никак...может я что с циклом неверно делаю...
katrin1548 вне форума
Старый 07.06.2008, 13:29   #10
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

попробуйте так
Код:
For i = 0 To 100'индекс начинается с 0, дальше Ваше значение
iFam = ListBox1.List(iIndex & i, 0)
MsgBox iFam
Next i
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2003 & 2007 Sk!f Microsoft Office Word 2 30.04.2008 13:55
VBA Excel 2003 tat-besidovska Microsoft Office Excel 12 18.01.2008 10:54
Не работает Excel-евский файл в 2003 версии asale Microsoft Office Excel 1 03.10.2007 22:42
MS Excel и MS Outlook (2003) отсылка писем IceB Microsoft Office Excel 1 02.07.2007 13:32