Попробуйте обновить текущую книгу, повторно открыв ее с помощью Workbook.Open

Как следует из названия. Я хочу повторно открыть существующую книгу, чтобы обновить ее содержимое; почему-то метод Workbook.Open не может этого сделать.

Вот ситуация:

На общем диске находилась книга.

На компьютере А я открывал книгу, редактировал ее и время от времени сохранял.

На компьютере Б я открыл ту же книгу в режиме только для чтения. Я установил макрос, который запускается только тогда, когда книга открывается в режиме только для чтения, и он будет повторно открывать книгу с помощью метода Workbook.Open каждые 10 секунд (метод OnTime).

Я ожидаю, что книга, доступная только для чтения на компьютере B, может отображать изменения, внесенные на компьютере A после сохранения редактируемой книги. Однако независимо от того, сколько раз Workbook.Open запускался, содержимое книги на компьютере B вообще не менялось. Вот почему я не думаю, что книга действительно открывалась заново.

Что я сделал не так? Если повторное открытие книги не может обновить ее содержимое, какой смысл в ее повторном открытии? Есть ли способ сделать то, что я хочу? Спасибо!


1
50
1

Ответ:

Решено

Метод Workbook.Open откроет книгу, которая еще не открыта. Excel не позволит вам открыть две книги с одинаковым именем.

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

Итак, код для обновления книги, если она доступна только для чтения, будет выглядеть следующим образом:

If ThisWorkbook.ReadOnly Then ThisWorkbook.UpdateFromFile