Страница 1 из 1

войти кликом внутрь цикла FOR

Добавлено: 26 мар 2013, 19:19
ZvezdinVK
Здравствуйте, Прошу помощи! В Excel 2007 в VBA работает цикл For i=….
Для каждого значения i нужно выбрать элемент мышкой из
таблицы Tabl на рабочем столе. Этот элемент ActiveCell в программе.

Он определяет дальнейшие вычисления.
Вопрос: как приостановить цикл для клика мышкой в таблице?
М.б. есть какой-нибудь объект?

Re: войти кликом внутрь цикла FOR

Добавлено: 26 мар 2013, 19:48
pashulka
Сделайте проще(умнее), либо предварительно выделите все необходимые ячейки и вместо ActiveCell используйте Selection, разумеется, вкупе с необходимыми изменениями, либо откажитесь от цикла и вызывайте свой макрос, используя подходящее событие (на выбор : Worksheet_SelectionChange, Worksheet_BeforeDoubleClick)

Код: Выделить всё

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, [A2:C10]) Is Nothing Then
       'Здесь вызов необходимого макроса
    End If
    'Где диапазон A2:C10 это Ваш Table
End Sub

Re: войти кликом внутрь цикла FOR

Добавлено: 26 мар 2013, 20:03
pashulka
Или в теле цикла используйте, например, метод InputBox об'екта Application, т.е.

Код: Выделить всё

On Error Resume Next
    
Dim iCount%, iSource As Range
For iCount = 1 To 3
    Set iSource = Application.InputBox("Выберите ячейку", Type:=8)
    If Not iSource Is Nothing Then
       MsgBox iSource.Address, , ""
       'Здесь некие действия с этим об'ектом
       Set iSource = Nothing
    Else
        MsgBox "Отказ от выбора", , ""
    End If
Next