Koppelgaard Ответов: 1

Активируйте excel несколько раз


Мой макрос должен копировать данные из программы (UVprobe) в Excel. Это делается с помощью приложения.SendKeys "^c"’ для копирования данных из приложения Uvprobe и'.SendKeys "^v"’ для вставки данных в Excel.

Это влечет за собой переход от UVprobe к Excel много раз. Через короткое время Excel зависает "Excel (не отвечает)" Я сделал эту маленькую тестовую программу, которая также создает ошибку только после 3 циклов

Sub Apptest()

For i = 1 To 10

    AppActivate "notepad"
    Sleep 1000
    AppActivate Application.Caption
    Sleep 1000
Next i 
End sub


Что я уже пробовал:

Если я поставлю “Word” Вместо Application.caption, то не получу никакой ошибки. В чем может быть причина ? Кажется, что Excel заполняет память, но я не вижу, что использует память в тестовой программе.

1 Ответов

Рейтинг:
1

Maciej Los

Как говорится в документации MSDN, рекомендуется активировать приложение по его идентификатору, а не по заголовку / заголовку. Видеть: Оператор AppActivate | Microsoft Docs[^]

Вы также можете использовать API: Два способа активировать программу с VBA, если она уже открыта[^]

Но, честно говоря, я бы начал искать другой метод получения данных из приложения UVprobe.