1

Тема: Помилка при відкритті Excel файлу

На формі розміщені декілька елементів керування  які заповнюються.При натискані на кнопку "Експорт в Excel" дані  попадають в Excel  файл ("Звіт"). Все працює ,але якщо мені потрібно переглянути звіт я тисну на кнопку"Звіт в Excel"  і отримую помилку "Object variable or With block variable not set".
Які коррективи потрібно внести в код?
Проект виконано  на Visual Basic 2010 Express.
В архівному файлі : проект , файл Excel

Заздалегідь вдячний.

Post's attachments

Example.rar 75.46 kb, 207 downloads since 2015-05-29 

2

Re: Помилка при відкритті Excel файлу

Викладіть нормально - ніхто не буде скачувати й ставити собі віжуал бейсік лише через вашу задачу - є ж тег код

3

Re: Помилка при відкритті Excel файлу

Djalin,Ніхто ні кого неипримушує скачувати й ставити собі віжуал бейсік.

Якщо я цікавлюсь цим я  ставлю собі цю программу. Якщо мене не цікавить мова програмування :Pascal/Delphi  то я небуду  це робити.
Висилаю код.


Public Class Form1
    'Кнопка Експорт в Excel
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        'Перевірка на заповнення полів форми
        If Me.TextBox1.Text = "" And Me.ComboBox1.Text = "" Or Me.ComboBox2.Text = "" Then MsgBox("Всі поля повинні бути заполнені.", 48, "Повідомлення") : Exit Sub

        'створення додатка Excel
        Dim xlApp As Object, xlWb As Object, xlSheet As Object
        Const xlUP = -4162
        Dim iLastRow As Integer
        xlApp = CreateObject("excel.application")
        'xlApp.visible = True

        Try
            xlWb = xlApp.Workbooks.Open("C:\Звіт.xlsm") 'вказуємо шлях до файлу
        Catch ex As Exception
            xlWb = xlApp.workbooks.add()
            xlWb.SaveAs(Filename:="C:\Звіт.xlsm", FileFormat:=52)
        End Try
        xlSheet = xlWb.worksheets(1)

        With xlSheet
            'створюємо шапку звіту
            .range("B2").value = Label1.Text
            .range("C2").value = Label2.Text
            .range("D2").value = Label3.Text
            .range("E2").value = Label4.Text
            iLastRow = .cells(.rows.count, "B").end(xlUP).row + 1

            'заповнюємо рядки
            .Range("B" & iLastRow).Value = TextBox1.Text
            .Range("C" & iLastRow).Value = DateTimePicker1.Text
            .Range("D" & iLastRow).Value = ComboBox1.Text
            .Range("E" & iLastRow).Value = ComboBox2.Text
        End With

        xlWb.Close(SaveChanges:=True) 'Закриваємо книгу і зберігаємо файл
        xlApp.Quit() ' Закриваємо  Excel
        MsgBox("Дані успішно додані!", MsgBoxStyle.OkOnly)
        MsgBox(" iLastRow" & " " & iLastRow & " " & "Останній заповнений рядок")

        'очищаємо поля для нових записів
        Me.TextBox1.Text = ""
        Me.ComboBox1.Text = ""
        Me.ComboBox2.Text = ""
    End Sub

    'Кнопка Відміна
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub



ПОМИЛКА виникає при натискані на кнопку  'Кнопка Звіт в Excel
    'Кнопка Звіт в Excel
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim xlApp As Object
        Dim xlWb As Object

        xlWb = xlApp.Workbooks.Open("C:\Звіт.xlsm")
        xlWb.Visible = True
    End Sub

    
End Class

Chemist-i: для коду використовуйте, будь ласка, теґ [ code ]

4

Re: Помилка при відкритті Excel файлу

Не спеціаліст в VB, але, здається, у Вас змінна xlApp не ініціалізована.
Додайте щось на зразок:

xlApp = CreateObject("excel.application")

5

Re: Помилка при відкритті Excel файлу

yooll, дякую додав Ваш код . З"являється помилка : Public member 'Visible' on type 'Workbook' not found.

6

Re: Помилка при відкритті Excel файлу

Спробуйте замінити:

xlWb.Visible = True

на

xlApp.Application.Visible = True

або

xlWb.Application.Visible = True
Подякували: Юрій_1

7

Re: Помилка при відкритті Excel файлу

yooll, я Вам дуже вдячний . Працює.