Выбор ячеек во время выполнения макроса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VSelskov
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.03.2003 (Вт) 21:41

Выбор ячеек во время выполнения макроса

Сообщение VSelskov » 12.01.2005 (Ср) 23:33

Подскажите, пожалуйста, как сделать так, чтобы в момент выполнения макроса можно было работать с файлами (Задача такова-нужно чтобы во время выполнения макроса пользователь открыл 2 файла и выбрал в каждом ячейку)

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 13.01.2005 (Чт) 8:24

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

Во время выполнения этого кода Excel будет работать. А что надо?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VSelskov
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.03.2003 (Вт) 21:41

Сообщение VSelskov » 13.01.2005 (Чт) 21:24

ANDLL писал(а):
Код: Выделить всё
Do
    DoEvents
Loop

Во время выполнения этого кода Excel будет работать. А что надо?


Надо чтобы юзер по приглашению открыл файл, выбрал ячейку в нем.
И так 2 раза.
А если использовать этот код, то Excel вылетает у меня :(

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 13.01.2005 (Чт) 21:34

Если использовать мой код Excel не вылетает. Приведи свой код.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 13.01.2005 (Чт) 22:13

Вот код, который позволет выбрать ячейку:
Код: Выделить всё
Option Explicit
Public WithEvents WS As Excel.Worksheet
Dim m_GetCelRange As Range, m_IsGetCelRange As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public Sub Async1()
    Set WS = ActiveSheeto
    MsgBox GetCell.Formula
End Sub

Public Function GetCell() As Excel.Range
    m_IsGetCelRange = 1
    Do
        DoEvents
        Sleep 50
        If m_IsGetCelRange = 2 Then
            Set GetCell = m_GetCelRange
            Set m_GetCelRange = Nothing
            m_IsGetCelRange = 0
            Exit Function
        End If
    Loop
End Function

Private Sub WS_SelectionChange(ByVal Target As Range)
    If m_IsGetCelRange = 1 Then
        Set m_GetCelRange = Target
        m_IsGetCelRange = 2
    End If
End Sub
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VSelskov
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.03.2003 (Вт) 21:41

Сообщение VSelskov » 14.01.2005 (Пт) 1:19

AnDll, спасибо. Вот часть моего кода.
Извини за тупизм, но как можно использовать твой код:
Option Explicit
Public WithEvents WS As Excel.Worksheet
Dim m_GetCelRange As Range, m_IsGetCelRange As Byte
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
что это? (я только учусь. у меня Excel ругается на строку Public WithEvents WS As Excel.Worksheet)

Sub Dlya_Smirnova()
'В диалоге открываю файл, хочу сохранить координаты ячейки после выбора ее пользователем. Если после
filetoopen = Application _
.GetOpenFilename("Исходные данные(*.xls), *.xls")
If filetoopen <> False Then
Workbooks.Open (CStr(filetoopen))
' Если это вставить, то Excel вылетает после попытки пр
одолжить исполнение макроса
'Do
' DoEvents
'Loop


NmFileIsh = ActiveWorkbook.Name
NStlbIsh = ActiveCell.Column
LastRowIsh = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
SheetIsh = ActiveSheet.Name
'MsgBox "Open " & fileToOpen
End If
'+++++++++++++++++++++++++++++++++++++++
End Sub

вот.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 14.01.2005 (Пт) 8:42

Можно делать, например, так.
Вложения
smp.zip
Пример асинхронного макроса
(10.31 Кб) Скачиваний: 23
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

VSelskov
Начинающий
Начинающий
 
Сообщения: 6
Зарегистрирован: 04.03.2003 (Вт) 21:41

Сообщение VSelskov » 14.01.2005 (Пт) 11:38

ANDLL писал(а):Можно делать, например, так.

AnDll, спасибо.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 22

    TopList