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

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
ZvezdinVK
Сообщения: 4
Зарегистрирован: 28 фев 2013, 11:53
Откуда: Екатеринбург

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

Он определяет дальнейшие вычисления.
Вопрос: как приостановить цикл для клика мышкой в таблице?
М.б. есть какой-нибудь объект?
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Сделайте проще(умнее), либо предварительно выделите все необходимые ячейки и вместо 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
pashulka
Сообщения: 831
Зарегистрирован: 24 ноя 2004, 03:46
Контактная информация:

Или в теле цикла используйте, например, метод 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
Ответить