【问题标题】:VB.NET Connecting with empty Excel cell - NullReferenceException was coughtVB.NET 与空 Excel 单元格连接 - NullReferenceException 被咳嗽
【发布时间】:2016-08-25 23:37:57
【问题描述】:

我在 VB.NET 中连接 Excel 时遇到问题。当我遍历单元格以查找工作表内的最后一个非空行时,当我将空单元格的值与“”进行比较时,我收到错误:NullReferenceException 被捕获。对象引用未设置为对象的实例。"

有一段代码:

   Dim xlApp As New Excel.Application
   Dim xlWb As Excel.Workbook
   Dim xlsheet As Excel.Worksheet
   Dim lRow As Integer = 1
   Dim excelFilePath As String

   Using FileDialog As New OpenFileDialog

        FileDialog.Title = "Please choose Excel file with XXX"
        FileDialog.FileName = ""
        FileDialog.ShowDialog()
        excelFilePath = FileDialog.FileName

    End Using

    xlApp.Visible = True
    xlWb = xlApp.Workbooks.Open(excelFilePath)
    xlsheet = xlWb.Sheets("Sheet1")

    Do While xlsheet.Cells(lRow, 3).value.ToString() <> ""
       lRow += 1
    Loop

我尝试将 while 条件多次更改为 xlsheet.Cells(lRow, 3).value 等,但我总是失败 - 使其工作的唯一方法是尝试 - 捕捉,但我想知道我在做什么做错了什么以及如何以正确的方式解决它?

【问题讨论】:

标签: vb.net excel


【解决方案1】:

嗯,你可以做的一件事是使用String.IsNullOrEmpty,所以Do 循环看起来像这样:

Do While String.IsNullOrEmpty(xlsheet.Cells(lRow, 3).value) = False
    lRow += 1
Loop

但这可能会让您陷入无限循环,因此您可以考虑改用For Next:

你应该首先得到最后使用的行:

Dim lastRow As Integer = xlsheet.Cells(xlsheet.Rows.Count, 3).End(Excel.XlDirection.xlUp).Row

'Then use the loop:

For x = 1 To lastRow
    If String.IsNullOrEmpty(xlsheet.Cells(x, 3).value) = False Then
        'Do something
    End If
Next

如果您的主要目的是获取最后使用的行,则不必遍历这些行。你可以使用这一行:

Dim lastRow As Integer = xlsheet.Cells(xlsheet.Rows.Count, 3).End(Excel.XlDirection.xlUp).Row

希望有帮助:)

【讨论】:

    【解决方案2】:

    excel中的空单元格的值为NOTHING

    将循环更改为如下

        Do While xlsheet.Cells(lRow, 3).value IsNot Nothing
            lRow += 1
        Loop
    

    你出来的行是第一个空单元格, lrow-1 是该列中最后一个非空单元格

    当我遍历单元格以查找内部最后一个非空行时 表,

    为了做到这一点,你必须遍历列和行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 1970-01-01
      • 2014-04-19
      • 2019-03-31
      • 1970-01-01
      相关资源
      最近更新 更多