2017-02-21 81 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错误的原因是因为您尚未创建 oExcel的实例:

Dim oExcel As New Excel.Application