Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
rebel25 Большой шоколадный орден
Зарегистрирован: 06.10.2008 Сообщения: 579 Откуда: Москва
|
Добавлено: Ср Авг 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
}; |
|
Вернуться к началу |
|
|
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 Сообщения: 579 Откуда: Москва
|
Добавлено: Чт Авг 14, 2014 15:12 Заголовок сообщения: |
|
|
Joenka писал(а): | Используйте Dir : |
Я наверное не совсем точно описал то что хочу - мне нужно проверить не наличие файла, а наличие листа в файле Excel. |
|
Вернуться к началу |
|
|
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 Сообщения: 579 Откуда: Москва
|
Добавлено: Ср Авг 20, 2014 10:32 Заголовок сообщения: |
|
|
Joenka писал(а): | If ActiveWorkbook.Sheets(i).Name = "true_sheet" Then
|
спасибо |
|
Вернуться к началу |
|
|
|