Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Если макрос не нашел файла / 10 сообщений из 10, страница 1 из 1
19.11.2009, 14:14
    #36319814
Strelec79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
У меня макросом открывается файл, иногда бывает, что в название файла вносят изменение и тогда естественно макрос не может найти этот файл. Подскажите, пожалуйста, как прописать, чтоб в этом случае открывалось диалоговое окно и можно было самостоятельно указать макросу какой файл использовать.
Спасибо.
...
Рейтинг: 0 / 0
19.11.2009, 14:23
    #36319831
SimpleC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Примерно так:

Код: plaintext
1.
Application.Dialogs(xlDialogOpen).Show
                      wbname = ActiveWorkbook.Path & "/" & ActiveWorkbook.Name



:)
...
Рейтинг: 0 / 0
19.11.2009, 14:25
    #36319841
SimpleC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Strelec79, Упс... Написано файл, а не книга.. Пардон...
...
Рейтинг: 0 / 0
19.11.2009, 14:29
    #36319852
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
SimpleC,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Option Explicit

Sub openFile()
Dim filename As String

filename = "C:\test.xls"

On Error Resume Next
  Workbooks.Open (filename)
  If Err.Number <>  0  Then 'Значит отсутствует документ.
   filename = Application.GetOpenFilename("(*.*),*.*")
   Err.Clear
   Workbooks.Open (filename)
  End If
On Error GoTo  0 
End Sub


Если открывается файл, не экселевский, то вместо Workbooks.Open надо использовать соответствующую команду.
...
Рейтинг: 0 / 0
19.11.2009, 15:15
    #36319976
SimpleC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Djon Player, спасибо конечно :) Но это не мне нужно было. ;)
...
Рейтинг: 0 / 0
19.11.2009, 15:31
    #36320022
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
SimpleCDjon Player, спасибо конечно :) Но это не мне нужно было. ;)
Да я заметил, но после отправки к сожалению уже нельзя поменять сообщения.
Неплохо было бы, чтобы отправленное сообщение можно было откорректировать или удалить хотя бы в течении нескольких минут, т.к. не смотря на предварительный просмотр, всё равно некоторые ошибки замечаются лишь после окончательной отправки.
...
Рейтинг: 0 / 0
20.11.2009, 09:52
    #36321525
Strelec79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
SimpleC , Djon Player - всем спасибо
это я, извините, неточно написал, вообще то книгу, но думаю и для файла вообще то пригодится :)
сейчас буду пробовать...
...
Рейтинг: 0 / 0
20.11.2009, 14:33
    #36322389
Strelec79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Использовал код SimpleC, все работает, спасибо, но теперь возник противоположный вопрос – как закрыть эту книгу?
Объясняю: макрос у меня открывает нашу книгу, берет из нее данные и вставляет в другую книгу, т.е. активной остается другая книга, хочется макросом закрыть первую книгу только неизвестно ее имя.
У меня прописано:
Windows("test.xls").Activate
ActiveWorkbook.Close
Пробовал вместо ("test.xls") подставлять (filename) но ничего не получается.
Как надо, подскажите?
...
Рейтинг: 0 / 0
20.11.2009, 14:52
    #36322453
Hugo121
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Так попробуй:
Код: plaintext
1.
Set wb = ThisWorkbook
wb.Close
или
Код: plaintext
1.
Set wb = ActiveWorkbook
wb.Close
...
Рейтинг: 0 / 0
20.11.2009, 14:55
    #36322464
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Если макрос не нашел файла
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Option Explicit

Sub openFile()
 Dim filename As String
 Dim wb As Workbook

 filename = "C:\test.xls"

 On Error Resume Next
 Set wb = Workbooks.Open(filename)
 If Err.Number <>  0  Then 'Значит отсутствует документ.
  filename = Application.GetOpenFilename("(*.*),*.*")
  Err.Clear
  Set wb = Workbooks.Open(filename)
 End If
 On Error GoTo  0 

 wb.Close SaveChanges:=False 'Закрытие книги без сохранения.
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Если макрос не нашел файла / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]