Страница 1 из 2
Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 00:12
kminas
При открытии документа, содержащего в имени пробел, программа (во время активации) выдает ошибку 4160 и пишет: "неправильное имя файла". Вот код процедуры:
Public oapp As Object
Dim dlg As Object
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
Set dlg = Dialogs(wdDialogFileOpen)
oapp.ChangeFileOpenDirectory "C:\...\..."
If dlg.Show = -1 Then
Documents.Open FileName:=dlg.Name
Documents(dlg.Name).Activate
End If
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 00:16
VictorM
Как - то где - то прочел: "Программисты_пробелов_не_применяют". Я думаю это и есть ответ на Ваш вопрос.
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 01:03
Pavel55
У меня вот так работает (из под Excel)
Код: Выделить всё
Public oapp As Object
Dim dlg As Object
Sub Macro1()
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
Set dlg = oapp.Dialogs(80) 'wdDialogFileOpen
'oapp.ChangeFileOpenDirectory "C:\...\..."
If dlg.Show = -1 Then
oapp.Documents.Open Filename:=dlg.Name
'oapp.Documents(dlg.Name).Activate
End If
End Sub
P.S. строку
oapp.Documents(dlg.Name).Activate закомментировал, т.к. когда открываете документ он сразу автоматом становится активным и поэтому делать его ещё раз активным не надо
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 18:24
kminas
Pavel55 писал(а):У меня вот так работает (из под Excel)
Код: Выделить всё
Public oapp As Object
Dim dlg As Object
Sub Macro1()
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
Set dlg = oapp.Dialogs(80) 'wdDialogFileOpen
'oapp.ChangeFileOpenDirectory "C:\...\..."
If dlg.Show = -1 Then
oapp.Documents.Open Filename:=dlg.Name
'oapp.Documents(dlg.Name).Activate
End If
End Sub
P.S. строку
oapp.Documents(dlg.Name).Activate закомментировал, т.к. когда открываете документ он сразу автоматом становится активным и поэтому делать его ещё раз активным не надо
http://www.progz.ru/forum/index.php?sho ... t&p=163003
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 20:28
kminas
VictorM писал(а):Как - то где - то прочел: "Программисты_пробелов_не_применяют". Я думаю это и есть ответ на Ваш вопрос.
Открою маленький секрет. Я не буду работать на этой программе. А будут работать люди в той или иной степени с ним дружащие или наоборот.
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 20:36
kminas
Pavel55 писал(а):У меня вот так работает (из под Excel)
Код: Выделить всё
Public oapp As Object
Dim dlg As Object
Sub Macro1()
Set oapp = CreateObject("Word.Application")
oapp.Visible = True
Set dlg = oapp.Dialogs(80) 'wdDialogFileOpen
'oapp.ChangeFileOpenDirectory "C:\...\..."
If dlg.Show = -1 Then
oapp.Documents.Open Filename:=dlg.Name
'oapp.Documents(dlg.Name).Activate
End If
End Sub
P.S. строку
oapp.Documents(dlg.Name).Activate закомментировал, т.к. когда открываете документ он сразу автоматом становится активным и поэтому делать его ещё раз активным не надо
Вы знаете, как ни странно, помогло. Еще бы Вы подсказали, как мне избежать открытия второй копии Word. Если я с помощью этого кода открываю файл при уже открытых документах, появляется еще одно копия программы, но без документа. Если токрытый файл первый - все нормально.
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 23:05
Teslenko_EA
Здравствуйте
kminas.
Вы же создаете объект и одновременно хотите избежать "открытия второй копии"

GetObject(,"Word.Application") избавит от создиния копии, но если объекта нет сгенерируется ошибка, "поймав" которую, создавайте новый - CreateObject.
Евгений.
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 23:14
kminas
Teslenko_EA писал(а):Здравствуйте
kminas.
Вы же создаете объект и одновременно хотите избежать "открытия второй копии"

GetObject(,"Word.Application") избавит от создиния копии, но если объекта нет сгенерируется ошибка, "поймав" которую, создавайте новый - CreateObject.
Евгений.
Спасибо Евгений. Но у меня ничего не получается с GetObject(,"Word.Application"). Не подскажите, как с его помощью открыть файл по выбору пользователя?
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 23:16
Teslenko_EA
VictorM, когдато имена файлов не могли содержать символы за пределами 437 кодовой страницы, и длиной не более восьми символов (это было время DOS).
Кажется только законы физики на Земле не меняются.
Евгений.
Re: Не открывается документ с пробелом в имени файла
Добавлено: 31 мар 2008, 23:19
Teslenko_EA
kminas, пример который выслал Pavel55, уже опробован?