Обновить файл excel без открытия

!!!!! ОБНОВЛЕНИЕ ФАЙЛОВ БЕЗ ОТКРЫТИЯ!!!!!

ELLE

Дата: Вторник, 18.09.2012, 12:54 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Доброго времени суток!
Помогите пожалуйста!!!!
Имеется группа экселевских файлов (около 400), данные из которых сводятся в отдельном файле.
Данные в каждом файле зависят от даты, которая забивается в сводном файле, и на которую ссылаются эти отдельные файлы.
Как сделать так, чтобы дата (или ссылка) в тих файлах обновлялась автоматически без открытия файла???
Или, может, есть какая-то программка, которая бы запускала обновление этих файлов в определенное время?

 

Ответить

Serge_007

Дата: Вторник, 18.09.2012, 12:57 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15894


Репутация:

2623

±

Замечаний:
±


Excel 2016

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


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

ELLE

Дата: Вторник, 18.09.2012, 13:47 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Serge_007, что значит открывать в фоновом режиме?
Я в excel новичок, можно сказать! Только учусь!

 

Ответить

Hugo

Дата: Вторник, 18.09.2012, 14:29 |
Сообщение № 4

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Нашёл в закромах — откуда взял, не записано…

[vba]

Code

==============================================================
Применение макроса ко всем файлам из папки    
Папка = «полный путь папки»

                       ‘———— Excel-файлы в этой папке ——————
               Имя = Dir(Папка & «*.xls*»)
         Do While Имя <> «»
               Workbooks.Open FileName:=Папка & Имя , UpdateLinks:=True
               ‘здесь Ваш макрос делает свое грязное дело
               ActiveWorkbook.Close SaveChanges:=True
            Имя = Dir
         Loop

==============================================================

[/vba]

С доработкой вероятно так:
[vba]

Code

Sub update()

     With Application    ‘операции с приложением/отключаем для повышения скорости работы макроса
         .ScreenUpdating = False    ‘обновление экрана
         .DisplayAlerts = False    ‘вывод системных сообщений

         Папка = «полный путь папки»
         ‘———— Excel-файлы в этой папке ——————
         Имя = Dir(Папка & «*.xls*»)
         Do While Имя <> «»
             With .Workbooks.Open _
                  (Filename:=Папка & Имя, UpdateLinks:=True)
                 ‘здесь Ваш макрос делает свое грязное дело
                 .Close SaveChanges:=True
             End With
             Имя = Dir
         Loop

         .ScreenUpdating = True    ‘обновление экрана
         .DisplayAlerts = True    ‘вывод системных сообщений
     End With
End Sub

[/vba]


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

ELLE

Дата: Вторник, 18.09.2012, 14:32 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Hugo, спасибо большое! Только не могли бы Вы еще объяснить как создать макрос более подробно. что за чем.
ищу в сети, не могу найти.
не так много времени.
заранее спасибо!

 

Ответить

Hugo

Дата: Вторник, 18.09.2012, 14:43 |
Сообщение № 6

Группа: Друзья

Ранг: Участник клуба

Сообщений: 3140


Репутация:

670

±

Замечаний:
0% ±


2010, теперь уже с PQ

Подробнее тут:
http://www.excelworld.ru/publ/vba/first_step/excel_macro/39-1-0-114

Освоите простой код — можете попробовать этот (но сперва на тестовых файлах, или на копии рабочих в спецпапке).
Путь к папке пропишите вместо
Папка = «полный путь папки»
например
Папка = «C:TMPспецпапка»


excel@nxt.ru
webmoney: R418926282008 Z422237915069

 

Ответить

ELLE

Дата: Вторник, 18.09.2012, 15:40 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Hugo, спасибо!
попробую!

 

Ответить

Margot

Дата: Понедельник, 09.10.2017, 16:54 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Здравствуйте,

Можете ли вы пояснить поподробнее код данный выше?
[vba]

Код

Sub update()
With Application ‘операции с приложением/отключаем для повышения скорости работы макроса
.ScreenUpdating = False ‘обновление экрана
.DisplayAlerts = False ‘вывод системных сообщений

[/vba]
Папка (имеется ввиду что надо прописать имя папки ?)= «полный путь папки»
‘———— Excel-файлы в этой папке ——————
Имя (о каком имени тут идет речь?)= Dir(Папка & «*.xls*») (имя папки & «*.xls*»?)
Do While Имя (каком имени тут идет речь?) <> «»
[vba]

Код

With .Workbooks.Open _
(Filename:=Папка & Имя, UpdateLinks:=True)
‘здесь Ваш макрос делает свое грязное дело
.Close SaveChanges:=True
End With
Имя = Dir
Loop
.ScreenUpdating = True ‘обновление экрана
.DisplayAlerts = True ‘вывод системных сообщений
End With
End Sub

[/vba]

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

Спасибо за помощь!

 

Ответить

buchlotnik

Дата: Понедельник, 09.10.2017, 16:58 |
Сообщение № 9

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

Сообщение отредактировал _Boroda_Понедельник, 09.10.2017, 17:00

 

Ответить

_Boroda_

Дата: Понедельник, 09.10.2017, 16:59 |
Сообщение № 10

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

— Прочитайте Правила форума
— Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #)

И что значит

? —


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Margot

Дата: Понедельник, 09.10.2017, 17:40 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Цитата

И что значит
Цитата Margot, 09.10.2017 в 16:54, в сообщении № 8 ( писал(а)):
пояснить поподробнее код
? —

Имеется ввиду что нужно писать на месте слов «Папка» и «Имя»:

Я написала этот код таким образом,что подставила вместо слова «папка» имя папки,где находятся файлы, которые нужно обновить (macrosMAJ) и вместо «Имя» — имя файла в котором изменяются данные (origine):

[vba]

Код

Sub update()
    With Application   
        .ScreenUpdating = False    
        .DisplayAlerts = False    
        macrosMAJ = «C:Users…macrosMAJ»

              origine = Dir(macrosMAJ & «*.xls*»)
        Do While macrosMAJ <> «»
            With .Workbooks.Open _
                (Filename:=macrosMAJ & origine, UpdateLinks:=True)
                .Close SaveChanges:=True
            End With
            origine = Dir
        Loop
        .ScreenUpdating = True   
        .DisplayAlerts = True    
    End With
End Sub

[/vba]

Но код не работает и подчеркивает ошибку в строке :

[vba]

Код

With .Workbooks.Open _
                (Filename:=macrosMAJ & origine, UpdateLinks:=True)

[/vba]

Сообщение отредактировал MargotВторник, 10.10.2017, 10:06

 

Ответить

_Boroda_

Дата: Понедельник, 09.10.2017, 17:42 |
Сообщение № 12

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

— Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Margot

Дата: Понедельник, 09.10.2017, 17:59 |
Сообщение № 13

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Цитата

— Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #)

я сделала как вы просили, но весь код заменяется на знак #

 

Ответить

_Boroda_

Дата: Понедельник, 09.10.2017, 19:58 |
Сообщение № 14

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А Вы где кнопку нажимаете? На клавиатуре?
Нужно на панели. Вот здесь

К сообщению приложен файл:

4380908.jpg
(24.0 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Margot

Дата: Вторник, 10.10.2017, 10:08 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Спасибо за объяснение)) исправила

 

Ответить

_Boroda_

Дата: Вторник, 10.10.2017, 10:20 |
Сообщение № 16

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А теперь я Вас огорчу — видите в макросе строчку
[vba][/vba]? Так вот, эта строка ОТКРЫВАЕТ файл

Ну и ответы на Ваши вопросы —
1. нужно присвоить переменной «папка» значение полного пути к той папке, где лежит файл. Примерно вот так
[vba]

Код

Папка = «c:UsersМояПрочееДля_Excel»

[/vba]
2. [vba]

Код

Имя = Dir(Папка & «*.xls*»)

[/vba] «Имя» — это переменная. С тем же успехом можно было назвать «Imya». Кстати, как и «папка». Просто автор макроса посчитал, что так будет понятнее


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Margot

Дата: Вторник, 10.10.2017, 11:17 |
Сообщение № 17

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Спасибо за ответ!Теперь это понятно.

Переделала, но все равно строчка с «With Workbooks.Open Filename» подчеркивается :

[vba]

Код

Sub update()
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        macrosMAJ = «C:UsersE500892…macrosMAJ»

            origine = Dir(macrosMAJ & «*.xls*»)
        Do While origine <> «»
           With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True
                .Close SaveChanges:=True
            End With
            origine = Dir
        Loop
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
End Sub

[/vba]

 

Ответить

Фомулист

Дата: Вторник, 10.10.2017, 11:23 |
Сообщение № 18

Группа: Проверенные

Ранг: Обитатель

Сообщений: 385


Репутация:

9

±

Замечаний:
60% ±


Excel 2003

[vba]

Код

«C:UsersE500892…macrosMAJ»

[/vba]

Потому, что это не полный путь к файлу. «…» в пути быть не должно. Скопируйте и вставьте именно полный путь к папке.


Терпение и труд всё перетрут!

Сообщение отредактировал ФомулистВторник, 10.10.2017, 11:25

 

Ответить

_Boroda_

Дата: Вторник, 10.10.2017, 11:23 |
Сообщение № 19

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Конечно. Слеш забыли

macrosMAJ = «C:UsersE500892…macrosMAJ»

Папка = «c:UsersМояПрочееДля_Excel»


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Margot

Дата: Вторник, 10.10.2017, 11:44 |
Сообщение № 20

Группа: Пользователи

Ранг: Прохожий

Сообщений: 7


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Исправила как вы написали, но опять не работает и та же строчка с «With Workbooks.Open Filename» подчеркнута:

[vba]

Код

Sub update()
    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        macrosMAJ = «C:UsersE500892DesktopFichier de SUIVIMBAV BarèmesmacrosMAJ»

                origine = Dir(macrosMAJ & «*.xls*»)
        Do While origine <> «»
            With Workbooks.Open Filename:=macrosMAJ & origine, UpdateLinks:=True
                .Close SaveChanges:=True
            End With
            origine = Dir
        Loop
        .ScreenUpdating = True
        .DisplayAlerts = True
    End With
End Sub

[/vba]

 

Ответить

My workaround is to record a Macro in the Excel file (so you have to use .xlsm file extension) (first you will need to go to Programs >> Windows Powershell and type at prompt Set-ExecutionPolicy RemoteSigned to allow the script to run) :

Sub AutoUpdate()
'
' AutoUpdate Macro
' data refresh from MSQuery connection

'
    Sheets("Feuill1").Select
    Selection.ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub

Then I use a Powershell script that does the trick by : opening the Excel file, calling the macro, save and close the file.
In this example I make a copy of the original file for security/backup purpose, but of course you could save the original file itself.

$objectExcel = new-object -c excel.application
$objectExcel.displayAlerts = $false # don't prompt the user
#$objectExcel.visible = $True;
$Classeur = $objectExcel.workbooks.open("source_filepath", $null, $true)
$objectExcel.run("AutoUpdate")
# $objectExcel.run("RemoveODBC") # another custom macro for removing data connexion
$Classeur.saveas("destination_filepath")
$Classeur.close($false)
#$objectExcel.visible = $False;
$objectExcel.quit()
spps -n excel

So my Excel report is refreshed on a daily basis, without any manual intervention, by a Windows Planified task that called the above script.

Здравствуйте,

У меня есть excel (.xlsx) файл, в нем много листов с таблицами которые основываются на данных с внешней SQL базы данных. Файл хранится в облаке в OneDrive (так же могу хранить в SharePoint, если проще).
Сейчас мне приходится открывать файл и нажимать кнопку refresh, что бы обновить данные (или по открытию).

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

Спасибо


  • Вопрос задан

    более двух лет назад

  • 1254 просмотра

Пригласить эксперта

Вы сами ответили на свой вопрос — открывать каждые 30 минут и установить автоматическое обновление. Осталось только автоматизировать это. Я бы сделал так: создал папку, в которую кидал бы такие файлы(если их несколько). Далее — скрипт или программку, которая бы периодически бы запускала бы все файлы в фоновом режиме (например, есть VBS скрипты, которые могут это сделать, или же в bat файле всё создать, или программу на любом языке программирования сделать, тут уже дело вкуса). И останется закрыть файл после синхронизации. Тут или по времени, или в самом файле после синхронизации(только как-то надо отследить что это автоматическая синхронизация, а не просто работа с файлом — чтобы можно было с ним работать в штатном режиме) — тут много вариантов, например параметры командной строки отслеживать изнутри, или же просто по имени файла(например, если есть в конце файла «_autosync», то нужно закрыть после синхронизации).


  • Показать ещё
    Загружается…

16 апр. 2023, в 13:46

1000 руб./за проект

16 апр. 2023, в 13:34

3000 руб./за проект

16 апр. 2023, в 13:31

4000 руб./за проект

Минуточку внимания

5 / 5 / 0

Регистрация: 15.06.2015

Сообщений: 342

1

21.07.2016, 01:35. Показов 13229. Ответов 5


Студворк — интернет-сервис помощи студентам

Здравствуйте!
Понадобилась помощь. У меня тысячи файлов которые нужно обновлять. Но вот открывать каждый очень долго. Есть ли возможность у Excel обновлять эти книги вообще не открывая?
Расскажу подробней процесс.
В общем есть книга1, в ней есть данные которые она берёт с файла xxx, потом в книге1 происходят вычисления исходя из взятым данных и книга закрывается.
Потом книгой2 я вытаскиваю уже готовые вычисления из книги1 в таблицу(которая в книге2), с помощью обновления связей.
Так вот, возможно ли как то сделать, что бы книгу1 не открывать, а обновлять прямо закрытой. Возможно при обновлении связей в книге2. Я пробовал, но достаются данные такие которые были при сохранении книги1. А нужно чтобы вытаскивались обновлённые вычисления исходя из того что каждая книга1 берёт данные с файла «xxx» и производит вычисления.
Надеюсь меня поняли.



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

21.07.2016, 06:35

2

Может я чего-то не понимаю, но думаю, что подобное обновление это мечта фантазера. Все изменения в любом файле происходят в оперативной памяти, т.е он вызывается в память явно или неявно через ссылки связей. Потом его можно и сохранить. Можно сделать в программе загрузку файла (не вручную), поработать с ним и закрыть, когда он не нужен с сохранением или без — по желанию автора.



0



5 / 5 / 0

Регистрация: 15.06.2015

Сообщений: 342

21.07.2016, 06:38

 [ТС]

3

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



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

21.07.2016, 08:10

4

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



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

21.07.2016, 08:36

5

Попробуйте посмотреть разницу, если в той промежуточной книге отключить галку «save external link values».
Но думаю что без открытия, пересчёта и сохранения промежуточной книги не обойдётесь, и эта галка должна стоять.



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,002

21.07.2016, 09:10

6

Сделал аналог вашей ситуации, так что файл можно не посылать. Думаю файл-ссылка вызывается во временную область, обновляется ваш файл и эта область закрывается. Поэтому не стоит ломать голову над тем чего бы вам хотелось, а нужно в проекте Открыть Файл_ССылки, Изменить, Сохранить. Да и ГУРУ Hugo121, пишет то же самое.



0



 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

Доброго дня.

Как обновить окно файла xls,  который открыт только для чтения ?

(Не закрыть и открыть заново вручную — а обновить)
Чтобы после обновления все изменения отобразились.

Изменено: Dim Ozerov08.12.2018 16:46:56

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Как войти в закрытую дверь? открыть ее, правильно?
Сначала разрешить изменения. Или вопрос не об этом?

 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

Так как обновить окно файла xls,  который открыт только для чтения ?

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

Закрыть и открыть снова.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

JayBhagavan, нет —  речь не о закрытии-открытии вручную..
Я же спросил — как обновить окно файла xls,  который открыт только для чтения ?

Изменено: Dim Ozerov08.12.2018 16:47:32

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

Dim Ozerov, Excel — это не Браузер. Да и последний при обновлении страницы её перечитывает, просто ему ненужно закрывать её.
Если вам нужно сделать файл наблюдатель, то это должен быть другой файл, который ссылается на первый. Тогда, при обновлении связей, обновятся значения, но формат и прочее — не будет обновлены, также если были удалены или вставлены ячейки, строки, столбцы … это не будет отражено.

По вопросам из тем форума, личку не читаю.

 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

БМВ, как так ? Какие связи ?
Нужен макрос, который просто переоткрывает файл в режиме «только для чтения» и все.

То есть макрос — закрывает файл открытый только для чтения и тут же этот закрытый секунду назад файл (так же в режиме только для чтения).
То есть — перезапускает файл в том же режиме.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#9

08.12.2018 17:11:29

Цитата
Dim Ozerov написал: Чтобы после обновления все изменения отобразились.

Но как? Файл только для чтения, его нельзя изменять!

Опишите конечную цель, а не то, как Вы пытаетесь ее достичь. Что делаете? Для чего это все?

 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

#10

08.12.2018 17:15:54

Цитата
vikttur написал:
Файл только для чтения, его нельзя изменять!

Мне и не надо его изменять — нужно только закрыть и открыть заново.
Только макросом.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#11

08.12.2018 17:18:39

А как понимать это:

Цитата
Чтобы после обновления все изменения отобразились.

При

Цитата
Мне и не надо его изменять
 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

vikttur, пишу еще раз :
Нужно макросом закрыть файл и открыть его заново.

 

Dim Ozerov

Пользователь

Сообщений: 99
Регистрация: 21.07.2017

Dim Ozerov, я снимаю этот вопрос.
Действительно — зачем использовать макрос ?
Закрыл, потом открыл — и хорошо.

А лучшее — как известно — враг хорошего.

Изменено: Dim Ozerov08.12.2018 17:46:20

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#14

08.12.2018 17:54:09

Цитата
Dim Ozerov написал:  Dim Ozerov , я снимаю этот вопрос.

Сами себе пишете? И правильно — лучше запомнится :)

А смысл создания темы какой?

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#15

08.12.2018 18:09:12

Виктор, ну конечная цель улавливается, но

Цитата
Dim Ozerov написал:
(Не закрыть и открыть заново вручную — а обновить)

требовало ответа — НЕВОЗМОЖНО! Если говорить о том . как автоматизировать процесс закрыть и открыть активную книгу , открытую только для чтения, для обновления информации занесенной другим пользователем, то вроде вырисовывается задача для макроса.

По вопросам из тем форума, личку не читаю.

 

Inexsu

Пользователь

Сообщений: 758
Регистрация: 29.06.2017

#16

08.12.2018 18:39:18

Привет!

Код для надстройки

Код
Public Sub Книга_Активная_Закрыть_Открыть()
    Dim wb As Workbook: Set wb = ActiveWorkbook

    Dim Путь_Файл As String
    
    With wb
        Путь_Файл = .FullName
        .Close False
    End With

    Workbooks.Open Filename:=Путь_Файл, ReadOnly:=True
End Sub

Сравнение прайсов, таблиц — без настроек

 

bedvit

Пользователь

Сообщений: 2477
Регистрация: 02.04.2015

Виталий

#17

09.12.2018 14:52:47

Цитата
Dim Ozerov написал:
Как обновить окно файла xls,  который открыт только для чтения ?(Не закрыть и открыть заново вручную — а обновить)Чтобы после обновления все изменения отобразились.

Есть стандартный способ обновить открытый для чтения файл Excel, без закрыть/открыть вручную и без макросов.
Выносим стандартную кнопку «Обновить файл» в ленту или панель быстрого доступа, пользуемся (см.рис.)

Прикрепленные файлы

  • Обновить_файл.PNG (40.8 КБ)

«Бритва Оккама» или «Принцип Калашникова»?

 

Inexsu

Пользователь

Сообщений: 758
Регистрация: 29.06.2017

#18

09.12.2018 15:36:19

Привет!

Цитата
bedvit написал:
кнопку «Обновить файл»

Крутяк! Спасибо!

Сравнение прайсов, таблиц — без настроек

 

sokol92

Пользователь

Сообщений: 4445
Регистрация: 10.09.2017

#19

09.12.2018 21:32:14

#17 : Workbook.UpdateFromFile

Владимир

Понравилась статья? Поделить с друзьями:
  • Обновить файл excel python
  • Обновить страницу excel горячая клавиша
  • Обновить программу microsoft word
  • Обновить ссылки на другие документы excel
  • Обновить поля в сводной таблице excel