2017-04-03 8 views
1

을 종료하는 Process.Start를 기다릴 내 코드입니다 :엑셀 오류를 여기

Dim sTemplateSharedPath As String = sSharedDrive & ":\Excel Templates\ImportTemplate.xlsx"  
Dim objProcess As System.Diagnostics.Process 
        Try 
         objProcess = New System.Diagnostics.Process() 
         objProcess.StartInfo.FileName = sTemplateSharedPath 
         objProcess.Start() 
         objProcess.WaitForExit() 
        Catch 
         MessageBox.Show("Could not start process " & sTemplateSharedPath, "Error") 
        End Try 

Excel이 내가 요청한 파일을 열어,하지만 난 얻을 objProcess.WaitForExit() 멋져 어그 오류의 시스템 충돌이 다음입니다 :

No process is associated with this object.

시스템에서 템플릿을 열고 사용자가 데이터를 추가하고 저장하고 닫도록합니다. 시스템에서 프로세스가 더 이상 실행되고 있지 않음을 감지하면 sTemplateSharedPath을 가리키고 변경 사항을 시스템으로 가져옵니다. 사용자가 Excel 문서를 편집하는 동안 앱의 UI가 응답하지 않는 것이 좋습니다.

나는 과정을 시작하기 전에 나는 위의 코드에 다음을 추가 한 :

objProcess.StartInfo.UseShellExecute = false 

을하지만이 오류 얻을 :

the specified executable is not a valid application for this os platform

나는 누군가가 나를 asssist 할 수있을 것입니다 희망한다을 이 문제는

미리 감사드립니다.

답변

0

파일을 매개 변수로 사용하여 Excel 인스턴스를 먼저 열려고 했습니까?

Dim sSharedDrive = "C" 
    Dim sTemplateSharedPath As String = "excel.exe" 
    Dim FileParam As String = ControlChars.Quote + sSharedDrive + ":\test new\test.xlsx" + ControlChars.Quote 
    Dim objProcess As System.Diagnostics.Process 
    Try 
     objProcess = New System.Diagnostics.Process() 
     objProcess.StartInfo.FileName = sTemplateSharedPath 
     objProcess.StartInfo.Arguments = FileParam 
     objProcess.Start() 
     objProcess.WaitForExit() 
    Catch 
     Console.WriteLine("Could not start process " & sTemplateSharedPath, "Error") 
     Console.ReadLine() 
    End Try 

.xlsx 파일 유형이 귀하의 OS에서 정의되어 있는지 알 수 없습니다. xlsx를 수동으로 열 수 있습니까?

+0

감사합니다. 매개 변수 방법이 문제를 해결 한 것 같습니다. – J2H656