2013-06-10 5 views
2

Каждый раз, когда я пытаюсь открыть документ Word в VBA excel, я получаю всплывающее окно в фоновом режиме, которое спрашивает, как его открыть, поскольку оно помечено как только для чтения. Я просмотрел свойства файла, и он не доступен только для чтения, но он находится в контроле версий (черепаха-SVN).vba excel open word document

Sub ReadSpec() 
'References 
' Microsoft Word 14.0 Object library 
' 
Dim Paragraphe As Object 

Dim WordApp As Word.Application 
Set WordApp = CreateObject("Word.Application") 

Dim WordDoc As Word.Document 
Set WordDoc = WordApp.Documents.Open("Spec.docx") 
WordApp.Visible = True 

WordDoc.Close 
WordApp.Quit 


End Sub 
+1

хммм не знакомы с SVN, но вы можете попробовать '.Open ("Spec.docx", ReadOnly = False)' или 'Open ("Spec.docx", ConfirmConversions = False, ReadOnly = False)'. –

+0

Это сработало отлично –

+0

Я добавлю, что в качестве ответа тогда :) –

ответ

1

Этот файл может быть использован другим приложением, поэтому вам говорят, что он доступен только для чтения. Это не проблема, если вы не хотите писать в файл. Если вы только пытаетесь читать из него мое предложение добавить

Application.DisplayAlerts = False 

, чтобы увидеть, если он избавляется от приглашения для вас. Также обратите внимание, что, как правило, хорошая практика, чтобы сделать что-то больше вдоль линий

Sub YourMethod 
    Dim PrevDispAlerts as Boolean 

    PrevDispAlerts = Application.DisplayAlerts 
    Application.DisplayAlerts = False 

    'code that does something goes here 

    Application.DisplayAlerts = PrevDispAlerts 
End Sub 
+0

Это не сработало –

0

хммм не знакомы с SVN, но вы можете попробовать

.Open("Spec.docx", ReadOnly=False) or Open("Spec.docx", ConfirmConversions=False, ReadOnly=False) 
1

Я не знаком с SVN, но вы можете попробовать либо:

.Open("Spec.docx", ReadOnly=False) 

или

.Open("Spec.docx", ConfirmConversions=False, ReadOnly=False) 

Они подавляют два общих диалога и приводят к поведению по умолчанию. Если вам нужно переопределить, вам придется либо сделать это явным в приведенном выше коде (т. Е. ReadOnly=True для принудительного чтения), либо просто разрешить отображение диалогового окна с использованием исходного кода.

0

Я полагаю, это зависит от версии Excel. Решения часто работают для одной версии, но не для других.

http://smallbusiness.chron.com/open-word-document-excel-using-vba-40430.html

Я нашел этот код работал.

'Open an existing Word Document from Excel 
Dim objWord As Object 
Set objWord = CreateObject("Word.Application") 
objWord.Visible = True 
'Change the directory path and file name to the location 
'of the document you want to open from Excel 
objWord.Documents.Open "C:\Documents\myfile.doc"