При первом рассмотрении есть несколько проблем с этим блоком кода:
Set ExcelApp = GetObject(, "Excel.Application")
If ExcelApp Is Nothing Then
Set ExcelApp = CreateObject("Excel.Application")
If Not ExcelApp Then
ExcelApp.Workbooks.Open (tempName)
End If
End If
Оператор:
Set ExcelApp = GetObject(, "Excel.Application")
Возникнет ошибка времени выполнения, если Excel не открыт;предположительно, в вашем коде присутствует On Error Resume Next
, чтобы обойти эту ошибку, или, возможно, у вас открыто приложение Excel при тестировании.
Если Excel уже открыт, ваш код никогда не откроет вашу целевую рабочую книгу, так как код будетне доходят до утверждения:
ExcelApp.Workbooks.Open (tempName)
Кроме того, выражение if
, окружающее вышеприведенное выражение, не имеет смысла:
If Not ExcelApp Then
ExcelApp.Workbooks.Open (tempName)
End If
Здесь вы говорите: "еслиExcelApp оценивает значение False, а затем использует его для открытия рабочей книги "