Как следует из названия. Я хочу повторно открыть существующую книгу, чтобы обновить ее содержимое; почему-то метод Workbook.Open не может этого сделать.
Вот ситуация:
На общем диске находилась книга.
На компьютере А я открывал книгу, редактировал ее и время от времени сохранял.
На компьютере Б я открыл ту же книгу в режиме только для чтения. Я установил макрос, который запускается только тогда, когда книга открывается в режиме только для чтения, и он будет повторно открывать книгу с помощью метода Workbook.Open каждые 10 секунд (метод OnTime).
Я ожидаю, что книга, доступная только для чтения на компьютере B, может отображать изменения, внесенные на компьютере A после сохранения редактируемой книги. Однако независимо от того, сколько раз Workbook.Open запускался, содержимое книги на компьютере B вообще не менялось. Вот почему я не думаю, что книга действительно открывалась заново.
Что я сделал не так? Если повторное открытие книги не может обновить ее содержимое, какой смысл в ее повторном открытии? Есть ли способ сделать то, что я хочу? Спасибо!
Метод Workbook.Open откроет книгу, которая еще не открыта. Excel не позволит вам открыть две книги с одинаковым именем.
Я считаю, что вам нужен метод Workbook.UpdateFromFile, который обновляет файл, доступный только для чтения, из его источника.
Итак, код для обновления книги, если она доступна только для чтения, будет выглядеть следующим образом:
If ThisWorkbook.ReadOnly Then ThisWorkbook.UpdateFromFile