2015-12-21 4 views
0

Я пытался проверить, потерял ли пользователь фокус только от определенного Range ячеек.Проверка на пересечение после потери фокуса

Option Explicit 
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Static OldRange As Range 
    Dim AmountCol As String * 1 
    Dim PayedCol As String * 1 
    Dim MyRange As Range 

    If (Not OldRange Is Nothing) Then 
     AmountCol = Chr(Asc(Range("B1").Text) + 1) 
     PayedCol = Chr(Asc(Range("B1").Text) + 2) 
     Set MyRange = Range(AmountCol & ":" & AmountCol) 

     If Not MyRange Is Nothing And Not OldRange Is Nothing Then 
      If Not Intersect(OldRange, MyRange) Then 
       MsgBox Chr(Asc(Range("B1").Text) + 1) & ":" & Chr(Asc(Range("B1").Text) + 1) 
      End If 
     End If 
    End If 

    Set OldRange = Target.Cells(1, 1) 
End Sub 

Может кто-то, пожалуйста, помогите мне понять, что в этом плохого? Код разбивается на строку с If Not Intersect(OldRange, MyRange) Then.

+0

Как насчет удаления скобки 'Не OldRange ли Nothing' – Luuklag

ответ

1

Изменить эту строку:

If Not Intersect(OldRange, MyRange) Then 

к этому:

If Intersect(OldRange, MyRange) Is Nothing Then 
+0

Спасибо! Я должен был держать «Не», хотя – AnDrOiD

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