检查excel的范围,看看是否是空的

在下面的代码中,我试图检查单元格R23是否包含任何数据,如果是的话:

执行操作

如果不

执行其他操作。

问题是单元格是空的,但包含可能返回值的公式。 因此,我为什么要检查价值。 问题是我的代码正在查看单元格中的公式,由于某种原因认为是一个string。 如果我删除公式,那么我的代码按计划执行。

我想不出我在这里做错了什么?

Option Explicit On Option Strict On Private Sub radMoveToRowQ23EE_MouseHover(sender As Object, e As EventArgs) Handles radMoveToRowQ23EE.MouseHover Dim eeName As String Dim WB As Excel.Workbook Dim WS as Excel.Worksheet WB = CType(Globals.ThisWorkbook.Application.ActiveWorkbook, Excel.Workbook) WS = CType(WB.Worksheets("positionBoard"), Excel.Worksheet) eeName = CStr(WS.Range("R23").Value) If eeName Is Nothing Then Me.tipSelectEmploye.SetToolTip(Me.radMoveToRowQ23EE, "No employee details to display") Else Me.tipSelectEmploye.SetToolTip(Me.radMoveToRowQ23EE, "Display details for employee: " & eeName) End If End Sub 

在VBA中,这是通过依赖函数IsEmpty 。 因此在VB.NET中String.IsNullOrEmpty是最好的等价的:

 If (String.IsNullOrEmpty(eeName)) Then Me.tipSelectEmploye.SetToolTip(Me.radMoveToRowQ23EE, "No employee details to display") Else Me.tipSelectEmploye.SetToolTip(Me.radMoveToRowQ23EE, "Display details for employee: " & eeName) End If 

你有没有尝试过

If eeName = "" Then

或者,尝试更改eeName到Excel.Range而不是一个string,将其设置为等于您的范围,然后尝试

If eeName.value = "" Then

你可能也想看.text而不是.value。 尽pipe.value是Excel范围的默认属性。 抱歉,我不能多一点决定性的,但这些方法已经在我的经验。