Откройте книгу Excel только для чтения через VB6 - PullRequest
3 голосов
/ 22 июня 2010

У меня есть приложение, написанное на VB6, которое записывает данные в электронную таблицу. Я использую библиотеку объектов MS Excel 11.0 для создания экземпляра Excel и открытия книги:

Dim xlApp As Excel.Application, remoteBook As Workbook
Set xlApp = New Excel.Application
Set remoteBook = xlApp.Workbooks.Open(sheetName)

Помимо записи в рабочую книгу "sheetName", программа также позволяет пользователю запускать рабочую книгу для просмотра совокупных результатов.

Существует вероятность, какой бы малой она ни была, чтобы пользователь мог открыть книгу для просмотра результатов, в то время как кто-то другой пытается написать в нее. Я хочу дать пользователю писать приоритет листа. Можно ли запустить лист для просмотра только для чтения? Есть свойство только для чтения объекта приложения Excel, но оно (конечно) только для чтения.

Как я могу настроить свою программу для записи данных в рабочую книгу, даже если кто-то случайно оставил файл открытым на своем столе?

Ответы [ 3 ]

5 голосов
/ 22 июня 2010

Просто сделайте это:

Set remoteBook = xlApp.Workbooks.Open( sheetName, , true)

Где true - открывать или нет только для чтения. ReadOnly - третий параметр этого метода.

0 голосов
/ 22 июня 2010

Позвольте мне убедиться, что я правильно истолковал вашу проблему:

  1. Ваше приложение записывает файл excel
  2. Приложение запускает файл в Excel для пользователя

Теперь вот что я думаю вы говорите: как только пользователь просматривает лист, он может или не может редактировать этот лист.
Другими словами, вы не можетехотите использовать

Set remoteBook = xlApp.Workbooks.Open( sheetName, , true)

100% времени, поскольку при просмотре пользователь может захотеть изменить данные.

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

Это правильно?

Если это так, может показаться, что вам может потребоваться указать явное состояние в вашем приложении «Открыть для просмотра» или «Открыть только для чтения»."получить доступ и затем переключить свойство« Только чтение »соответствующим образом;что, вероятно, нежелательно.

Однако вы не можете принудительно сохранить документ в офисе, если кто-то другой открыл его.

0 голосов
/ 22 июня 2010

Я думаю, вы могли бы сделать это с помощью метода Workbook.ChangeFileAccess, как описано здесь . Не уверен, что это будет соответствовать вашим обстоятельствам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...