2013-07-07 2 views
1

В коде ниже я пытаюсь проверить, если ячейка 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 

ответ

1

В 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 
0

Вы пробовали

If eeName = "" Then?

В качестве альтернативы, попробуйте изменить eeName к Excel.Range, а не строки, установите его равным вашего диапазона, то попробуйте

If eeName.value = "" Then

Вы также можете посмотреть на .text, а не .value. Хотя .value является свойством по умолчанию для диапазонов Excel. Извините, я не могу быть немного более убедительным, но эти методы работали на моем опыте.

Смежные вопросы