在下面的代码中,我尝试检查单元格 R23 是否包含任何数据,如果是的话:
执行动作
如果没有
执行其他操作。
问题在于单元格为空,但包含一个可能返回值或不返回值的公式。因此,这就是为什么我要检查值。问题是我的代码正在查看单元格中的公式,并出于某种原因认为它是一个字符串。如果我删除公式,那么我的代码将按计划执行。
我想不出我在这里做错了什么?
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
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 而不是字符串,将其设置为等于您的范围,然后尝试
If eeName.value = "" Then
您可能还想查看 .text 而不是 .value。不过,.value 是 Excel 范围的默认属性。抱歉,我无法给出更多结论,但根据我的经验,这些方法确实有效。