2017-02-21 25 views
1

Я пытаюсь записать в существующий файл Excel, но возникает ошибка NullReferenceException. Что мне делать, чтобы исправить это?NullReferenceException при попытке записи в файл Excel, который уже существует

Я ссылаюсь на Microsoft Excel 16.0 Object Library.

Вот что я сделал:

Imports Excel = Microsoft.Office.Interop.Excel 
Public Class manager 
    Dim oExcel As Excel.Application 
    Dim oBook As Excel.Workbook 
    Dim oSheet As Excel.Worksheet 
    Dim oRange As Excel.Range 
    Dim box1 As Integer = 0 
    Dim i As Integer = 2 

    Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged 
     box1 = 1 
    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Try 
      oBook = oExcel.Workbooks.Open("C:\puthere.xlsx") 
     Catch ex As NullReferenceException 

     End Try 

     Try 
      oSheet = oBook.Worksheets("sheet1") 

     Catch ex As NullReferenceException 
     End Try 

     Try 

      oSheet.Range("B" & i).Value = box1 
     Catch ex As NullReferenceException 
     End Try 
    End Sub 

End Class 

Я попытался с помощью Try-Catch и удалось остановить ошибку. Но программа не работает. Нет ошибки, но никаких изменений в файле. Когда я изменил путь и имя файла на тот, который не существует, программа делает то же самое (нет ошибки, просто ничего не пишу).

ответ

2

Я пробовал использовать Try-Catch и смог остановить эту ошибку. Но программа не работает. Нет ошибки, но никаких изменений в файле.

Это потому, что Try-Catch не остановка ошибка. Взгляните на документацию MSDN:

Предоставляет способ обработки некоторых или всех возможных ошибок, которые могут возникнуть в заданном блоке кода, при все еще запущенном коде.

Теперь о проблеме. Причина ошибки NullReferenceException заключается в том, что вы еще не создали экземпляр NewoExcel:

Dim oExcel As New Excel.Application