尝试写入已存在的Excel文件时出现NullReferenceException

时间:2017-02-21 07:45:59

标签: vb.net nullreferenceexception excel-interop

我尝试写入现有的Excel文件,但发生NullReferenceException错误。我该怎么做才能解决这个问题?

我引用了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并成功停止了错误。但该计划并不奏效。没有错误,但文件没有变化。当我将路径和文件名更改为不存在的路径和文件名时,程序也会这样做(没有错误,只是没有写任何东西)。

1 个答案:

答案 0 :(得分:2)

  

我尝试使用Try-Catch并成功停止了错误。但该计划不起作用。没有错误,但文件没有变化。

这是因为Try-Catch没有停止错误。看看MSDN文档:

  

提供一种方法来处理在给定代码块中可能发生的一些或所有可能的错误,同时仍然运行代码。

现在讨论手头的问题。 NullReferenceException错误的原因是您尚未创建New的{​​{1}}实例:

oExcel