2013-05-08 5 views
0

У меня есть текстовый файл с двумя строками с on/off и continue/finish, которые разрешены другой программой. Программа VBA должна подождать или продолжить в зависимости от строкового значения в первой строке и прекратить прослушивание событий, если вторая строка равна finish. Я читал, что для прослушивания изменений можно создать переменную с классом и событием, без проблем, если переменная определена в той же программе и изменена во время выполнения. Но как слушать, изменилась ли строка во внешнем файле и получить ее значение? Является ли это возможным? Должен ли я проверить, изменился ли файл, а затем получить строки? Благодарим мужчину за пару строк кода.прослушивание изменений файлов в VBA Excel

+0

У вас есть какой-либо код уже или вы ищете кого-то, кто сделает домашнее задание для вас? – 2013-05-08 07:04:10

ответ

0

Единственное, что я мог придумать в VBA, - это добавить повторяющийся файл, чтобы просмотреть файл каждые несколько секунд. Поэтому проверьте в VBA команду Application.OnTime. Если ваше приложение не делает много между ними, это может сработать или вы. При каждом запуске кода существует возможность небольшой вешалки.

Кроме того, взгляните на FileSystemObject. Чтобы использовать его, вам нужно добавить ссылку в VBA на \Windows\System32\scrrun.dll. По крайней мере, есть некоторые полезные функции для эффективного доступа к файлам.

Надеюсь, что это поможет вам в правильном направлении.

+0

Я думал, что схожу с тобой, я пытаюсь использовать эту ссылку (http://msdn.microsoft.com/en-us/library/zds3tce6(v=vs.80).aspx), но System.IO.FileInfo вызывает остановку компиляции, несмотря на то, что я добавил ссылку (с помощью меню) на scrrun.dll, как вы предложили. Идея состоит в том, что строковое значение, то есть время модификации файла, обновляется Windows и моя программа прослушивает это, тогда определенная задача будет выполнена немедленно. Мой VBA управляет шаговыми двигателями, они должны перемещать образец, когда детекторы записывают 'off' в текстовый файл. – JoeCoolman

+0

Подождите, ссылка выше VB.net (в Visual Studio), а не VBA (Visual Basic для приложения). Это другой язык программирования. Ссылка выше - это правильный способ сделать это на VB.net. Насколько мне известно, в VBA вы не можете слушать изменения файлов, в отличие от .net. Когда вы читаете файл, как я предлагал в VBA, убедитесь, что вы открываете файл в режиме ReadOnly, в случае, если обе системы получают доступ к файлу, а также добавляют обработку ошибок. Вот пример [link] http://www.globaliconnect.com/excel/index.php?view=article&id=103 – Rolfi

+0

JoeCoolman, вы нашли решение? Могу я вам помочь? – Rolfi

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