System.NullReferenceException:'对象变量或未设置块变量。

时间:2018-12-04 22:19:25

标签: excel vb.net

我有2个excel工作表(XLpicsWB.Sheets(sMinMaxWs)和ws。),其中第一个工作表中的单元格值可能存在也可能不存在于第二个工作表中。我想设置一个检查条件,如果值(opcTagItem.Value)在第二个工作表中不存在。 “ If”语句引发异常错误,我不确定如何正确设置check属性:

Select Case AnnunciatorBlkSizeCount
    Case 1
        If XLpicsWB.Sheets(sMinMaxWS).Range("A:A").Find(opcTagItem.Value).Row.Equals(vbNull) Then
            ws.Rows(iCurrentRow).Replace(What:=sOldAnnunciatorName, Replacement:=sBaseTagItemName, LookAt:=XlLookAt.xlPart,
                                     SearchOrder:=XlSearchOrder.xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False)
            iCurrentRow = iCurrentRow + 1
            Exit Select     ' Some tag names don't have Min/Max data
        End If

1 个答案:

答案 0 :(得分:0)

这可能是因为当.Row无法匹配时Find为NULL,因此抛出了NullReferenceException

对于Find,请参考https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.excel.range.find?view=excel-pia,向我们显示This method returns Nothing if no match is found.,因此您将需要删除.Row或检查Find是否匹配利用输出。