2015-08-27 5 views
0

У меня есть простой макрос, который открывает в InputBox, когда одна из ячеек в диапазоне выбран:InputBox открыт после выбора строки

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

If Not Application.Intersect(Target, Range("H18:H" & Worksheets("LookUpLists").Cells(2, "N").Value - 1)) Is Nothing Then 
    UserForm1.Show 
End If 

End Sub 

Проблема я столкнулся является то, что InputBox открывается и когда я выбираю весь ряд.

У вас есть идеи, как этого избежать?

ответ

0

Проверьте количество ячеек:

If Not Application.Intersect(Target, Range("H18:H" & _ 
    Worksheets("LookUpLists").Cells(2, "N").Value - 1)) Is Nothing And _ 
     Target.Cells.Count = 1 Then '// <~~ Check number of cells selected is 1 

    Userform1.Show 

End If 
0

Если вы хотите, чтобы все выборы (1 или более), которые не весь ряд, это должно сделать это.

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

Dim bEntireRow as Boolean 
    With Target 
     bEntireRow = .Address = .EntireRow.Address 
     '/ Excel evaluates (.Address = .Entirerow.address) as a Boolean True/False and assigns it to bEntireRow 
    End With 

    If bEntireRow = false and Not Application.Intersect(Target, Range("H18:H" & Worksheets("LookUpLists").Cells(2, "N").Value - 1)) Is Nothing Then 
     UserForm1.Show 
    End If 

End Sub 

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

  • Нет связанных вопросов^_^