Dave the Golfer Ответов: 1

Как остановить открытие листа excel, а также книги excel


Я хочу открыть книгу excel в качестве канала для печати данных.
Я использую следующий код;
Dim oXL As Excel.Application
    Dim oWB As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    oXL = CreateObject("Excel.Application")
    If oXL Is Nothing Then
            MessageBox.Show("Excel is not properly installed!!")
            Return
    End If
    oXL.Visible = True
    oXL.UserControl = False ' How to stop excelclosing immediately
        'create workbook
    oWB = oXL.Workbooks.Add 
'select the active worksheet
    oSheet = oWB.ActiveSheet
    ' add the code to populate the form
    ' then print the excel sheet and close  excel
    PrintForm1.PrinterSettings.PrinterName = "Microsoft Print to PDF"
        
        If PrintForm1.PrinterSettings.IsValid Then
            PrinterName = PrintForm1.PrinterSettings.PrinterName
            oSheet.PrintOut(From:=1, To:=1, Copies:=1, ActivePrinter:=PrinterName, Collate:=True, Preview:=True)

            'Make sure that you release object references.
            oRng = Nothing
            oSheet = Nothing
            oWB.Close(SaveChanges:=False)
            oXL.Quit()
            oXL = Nothing

        Else
            MessageBox.Show("Microsoft Print to PDF printer not set up!")
        End If


Код успешно распечатывает требуемую форму.

Проблема заключается в том, что документ excel с одним листом был сгенерирован
oXL = CreateObject("Excel.Application")

а затем создается рабочая книга с помощью
oWB = oXL.Workbooks.Add 

Затем, когда я прихожу к закрытию Excel,во-первых, используя
oWB.Close(SaveChanges:=False)
чтобы закрыть книгу без сохранения. Затем с помощью
oXL.Quit()
чтобы закрыть Excel, но затем меня спрашивают, хочу ли я Сохранить файл Sheet Excel.

Как остановить открытие одного листа Excel или поочередно закрыть его без сохранения?

Что я уже пробовал:

Я попытался найти информацию в интернете, чтобы разобраться в этой проблеме, но потерпел неудачу.

1 Ответов

Рейтинг:
10

Maciej Los

Причина, по которой вы спрашиваете о сохранении файла Excel, заключается в том, что этот фрагмент кода, ответственный за закрытие книги и освобождение ресурсов, находится внутри If - End if утверждение, но оно должно быть вне его.

 If PrintForm1.PrinterSettings.IsValid Then
     PrinterName = PrintForm1.PrinterSettings.PrinterName
     oSheet.PrintOut(From:=1, To:=1, Copies:=1, ActivePrinter:=PrinterName, Collate:=True, Preview:=True)

     'Make sure that you release object references.
     oRng = Nothing
     oSheet = Nothing
     oWB.Close(SaveChanges:=False)
     oXL.Quit()
     oXL = Nothing
 Else
     MessageBox.Show("Microsoft Print to PDF printer not set up!")
 End If

'Make sure that you release object references.
oRng = Nothing
oSheet = Nothing
oWB.Close(SaveChanges:=False)
oXL.Quit()
oXL = Nothing


Dave the Golfer

Спасибо. Работать отлично.

Maciej Los

Всегда пожалуйста.