당신이 Excel 인스턴스를 찾기 위해 노력하고 있어요 예외는 아마도 때문에입니다 CType
실패하고 던지는 InvalidCastException
. 캐스트를 피하면 (처음에) 피할 수 있습니다.
Dim xlObject As Object
Try
'get an existing excel.application object
xlObject = GetObject(, "Excel.Application")
Catch ex As Exception
' Some other exception now
End Try
If Not xlObject Is Nothing Then ' Found something, make the cast
xlApp = CType(xlObject, Application)
Else ' Did not find anything, create new instance
xlApp = New Excel.Application
End If
그리고 통합 문서가 있는지 확인하려면 해당 문서를 반복하고 이름을 확인하십시오.
Dim isWbOpen As Boolean
For i As Integer = 0 To xlApp.Workbooks.Count - 1
If xlApp.Workbooks(i).Name = xlWBName Then
isWbOpen = True
Exit For
End If
Next
If isWbOpen Then
xlBook = xlApp.Workbooks(xlWBName & ".xlsx")
Else
xlBook = xlApp.Workbooks.Open(xlBookPath & "\" & xlWBName & ".xlsx")
End If
출처
https://stackoverflow.com/questions/22049863