Список форумов BOSSForum.RU - Форум. БОСС-Кадровик
Независимый форум, посвященный системе БОСС-Кадровик
и всему, что с ней связано
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Проверка на существование листа Excel

 
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы
Предыдущая тема :: Следующая тема  
Автор Сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Ср Авг 13, 2014 16:35    Заголовок сообщения: Проверка на существование листа Excel Ответить с цитатой

Закачиваю данные из Excel. Лист должен называться определенным именем. Часто пользователи называют лист по другому и закачка начинает ругаться на непонятном им языке.
Скажите, как проверить что такой лист существует и если нет, сказать пользователю по человечески - а то я не силен в VB?

vb
{
Dim xlApp, curSH
Set xlApp = GetObject ("","Excel.Application")
xlApp.visible = 0
xlApp.WindowState = 2

};
ProcLocal vb.Open_Doc {(path);
xlApp.Workbooks.Open (path)
xlApp.ActiveWorkbook.Worksheets("Лист1").Activate
xlApp.WindowState = 2
};
ProcLocal vb.Close_Doc {();
xlApp.Workbooks.Close
xlApp.Quit
};
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Joenka



Зарегистрирован: 08.11.2013
Сообщения: 77
Откуда: Moscow

СообщениеДобавлено: Чт Авг 14, 2014 09:53    Заголовок сообщения: Ответить с цитатой

Используйте Dir :

Вот пример, как в самом Excel в макросе это работает:

If Dir("C:\1.xls") <> "" Then
MsgBox "Файл есть!"
Else
MsgBox "Файла нет!"
End If
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Чт Авг 14, 2014 15:12    Заголовок сообщения: Ответить с цитатой

Joenka писал(а):
Используйте Dir :

Я наверное не совсем точно описал то что хочу - мне нужно проверить не наличие файла, а наличие листа в файле Excel.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Joenka



Зарегистрирован: 08.11.2013
Сообщения: 77
Откуда: Moscow

СообщениеДобавлено: Чт Авг 14, 2014 16:51    Заголовок сообщения: Ответить с цитатой

Ааааааааа!!!!

Сорь!!!!


Тогда вот:

"true_sheet" - правильное имя!

For i = 1 To ActiveWorkbook.Sheets.Count
If ActiveWorkbook.Sheets(i).Name = "true_sheet" Then
t = True ' признак что есть такой лист
Exit For
End If
Next i



P.S.:
А зачем Вы используете имя листа?
Можно же индекс использовать!

xlApp.ActiveWorkbook.Worksheets(1).Activate
Это 1 лист, ну или какой вам там нужен?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
rebel25
Большой шоколадный орден
Большой шоколадный орден


Зарегистрирован: 06.10.2008
Сообщения: 496
Откуда: Москва

СообщениеДобавлено: Ср Авг 20, 2014 10:32    Заголовок сообщения: Ответить с цитатой

Joenka писал(а):
If ActiveWorkbook.Sheets(i).Name = "true_sheet" Then

спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов BOSSForum.RU - Форум. БОСС-Кадровик -> Общие вопросы Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Pоwerеd by рhpВB © 2001, 2005 рhpВB Grouр
Русская поддержка phрВB
Rambler's Top100 Рейтинг@Mail.ru Список форумов BOSSForum.RU