Не обновлять данные vba excel

 

Ksu

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

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

Добрый день!

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

программно в Workbook_Open

. Файл открывается вручную и отключить запрос на обновление ссылок до открытия файла- не возможно.

Заранее благодарна.

 

LVL

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

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

 

Ksu

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

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

 

LVL

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

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

 

Ksu

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

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

Я ж пишу что мне нужно

программно в Workbook_Open.

!!
В других файлах нужна эта галочка, а директор не будет ее постоянно клацать!

Изменено: Ksu06.06.2013 14:14:44

 

LVL

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

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

#6

06.06.2013 14:19:03

А макрорекордером пользовались? ;)

Код
Sub Макрос11()
'
' Макрос11 Макрос
'

'
    Application.AskToUpdateLinks = False
End Sub
 

Ksu

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

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

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

 

Ksu

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

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

Может возможно как-то прописать действия как на рисунке, макрорекордер ничего не выдает

 

LVL

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

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

#9

06.06.2013 14:44:10

Код
Private Sub Workbook_Open()
    Application.AskToUpdateLinks = False
End Sub

Это в модуле книги?
У меня работает, запрос не выдает, но при открытии нужно разрешить макросы, если не то соответственно запрос будет, т.к. макрос не запустится и не отключит его  ;)

 

Ksu

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

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

Макросы разрешены, но запрос все равно выдает, если же в конце не присвоить True, то при следующем открытии книги запроса уже не будет и excel автоматом обновит ссылки.  
А мне нужно только в этой книге(т.е. обязательно в конце присваивать True) и не обновлять ссылки.

 

LVL

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

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

т.е. макрос у вас просто не запускается…

 

Ksu

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

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

Та нет же, запускаются! вот для примера два файла в файле 2 ссылки на файл 1. Во 2 стоит макрос на открытие с вашим примером, а макрос перед закрытием с тем же самым только вместо False- True. Откройте файл 2,  закройте и откройте его снова. Макрос стоит, но запрос все равно выдаст.

 

ZVI

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

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

Попробуйте:
1. Открыть книгу
2. Нажать Alt-F11, чтобы попасть в VBE
3. Нажать Ctrl-G, чтобы попасть в окно Immediate
4. Набрать: ActiveWorkbook.UpdateLinks = xlUpdateLinksNever
5. В любом месте набранной строки нажать Enter
6. Сохранить книгу

 

Ksu

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

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

ZVI, большое спасибо! Не знала об этом окне Immediate. Возможно у вас есть какие-то ссылки, где можно почитать про данное окно более подробно и с примерами работы с ним.

 

yuppic

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

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

#15

16.10.2019 10:04:52

Цитата
ZVI написал:
4. Набрать: ActiveWorkbook.UpdateLinks = xlUpdateLinksNever

Добрый день. Можете пожалуйста подсказать:
1. На одном компьютере этот код работает, а на другом с этим же файлом нет. В чем может быть проблема?
2. Как переделать данный код, что бы наоборот производилось автоматическое обновление?

Изменено: yuppic16.10.2019 11:47:48

 

DmitriyK.

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

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

#16

03.12.2019 10:11:28

Цитата
ZVI написал:
ActiveWorkbook.UpdateLinks = xlUpdateLinksNever

Спасибо, пригодилось)

Irbtim

0 / 0 / 0

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

Сообщений: 13

1

Сбор данных, без обновление связей

22.01.2019, 11:52. Показов 4114. Ответов 9

Метки сбор данных (Все метки)


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

Всем доброго дня,
У меня есть код по сбору данных в единном формате. Однако при сборе данных, постоянно всплывает окно с запросом на обновление связей. Мне нужно чтоб он не обновлял связи и собирал данные без данного запроса.
Прошу помочь или дать направление.
Код см ниже

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Sub gett()
    Dim SummarySheet As Worksheet
    Dim FolderPath As String
    Dim SelectedFiles() As Variant
    Dim NRow As Long
    Dim FileName As String
    Dim NFile As Long
    Dim WorkBk As Workbook
    Dim SourceRange As Range
    Dim DestRange As Range
 Application.ScreenUpdating = False
    ' Create a new workbook and set a variable to the first sheet.
    Set SummarySheet = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
    
    ' Modify this folder path to point to the files you want to use.
    FolderPath = "C:UsersDesktop"
    
    ' Set the current directory to the the folder path.
    ChDrive FolderPath
    ChDir FolderPath
    
    ' Open the file dialog box and filter on Excel files, allowing multiple files
    ' to be selected.
    SelectedFiles = Application.GetOpenFilename( _
        filefilter:="Excel Files (*.xls*), *.xls*", MultiSelect:=True)
    
    ' NRow keeps track of where to insert new rows in the destination workbook.
    NRow = 1
    
    ' Loop through the list of returned file names
    For NFile = LBound(SelectedFiles) To UBound(SelectedFiles)
        ' Set FileName to be the current workbook file name to open.
        FileName = SelectedFiles(NFile)
        
        ' Open the current workbook.
        Set WorkBk = Workbooks.Open(FileName)
        
        ' Set the cell in column A to be the file name.
        
        SummarySheet.Range("A" & NRow).Value = FileName
                
        ' Set the source range to be A9 through C9.
        ' Modify this range for your workbooks. It can span multiple rows.
        Set SourceRange = WorkBk.Worksheets(3).Range("AW19")
        
        ' Set the destination range to start at column B and be the same size as the source range.
        Set DestRange = SummarySheet.Range("B" & NRow)
        
        Set DestRange = DestRange.Resize(SourceRange.Rows.Count, _
           SourceRange.Columns.Count)
           
           
        ' Copy over the values from the source to the destination.
        DestRange.Value = SourceRange.Value
 
        
        
        ' Increase NRow so that we know where to copy data next.
        NRow = NRow + DestRange.Rows.Count
        
        ' Close the source workbook without saving changes.
        WorkBk.Close savechanges:=False
    Next NFile
    
    ' Call AutoFit on the destination sheet so that all data is readable.
    SummarySheet.Columns.AutoFit
    Application.ScreenUpdating = True
End Sub



0



Narimanych

2632 / 1637 / 745

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

Сообщений: 5,147

22.01.2019, 13:13

2

Irbtim
Попробуйте в начале кода

Visual Basic
1
Application.DisplayAlerts=False

и потом в конце ( если надо)

Visual Basic
1
Application.DisplayAlerts=True



0



Святой НякаЛайк

653 / 246 / 88

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

Сообщений: 520

22.01.2019, 13:20

3

Видать запрос на обновление связей выдают те книги, которые открываются в цикле.
Если там постоянный набор файлов, то можно их открыть и убрать в них запрос на обновление связей (или разорвать сами связи)
Либо как вариант, в коде прописывать

Visual Basic
1
application.DisplayAlerts = False

в начале и

Visual Basic
1
application.DisplayAlerts = True

— в конце

Добавлено через 1 минуту
Narimanych, Дублет случился



0



2632 / 1637 / 745

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

Сообщений: 5,147

22.01.2019, 13:23

4

Святой НякаЛайк,



0



Irbtim

0 / 0 / 0

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

Сообщений: 13

22.01.2019, 13:28

 [ТС]

5

Цитата
Сообщение от Narimanych
Посмотреть сообщение

Irbtim
Попробуйте в начале кода

Visual Basic
1
Application.DisplayAlerts=False

и потом в конце ( если надо)

Visual Basic
1
Application.DisplayAlerts=True

Не получилось. Все равно выходитсообщение о внешних связях. Попробовал в нескольких вариациях и внутрь цикла и вне его, не получается. Может не туда ставлю?



0



Narimanych

2632 / 1637 / 745

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

Сообщений: 5,147

22.01.2019, 15:49

6

Irbtim,

попробуйте

в модуле книги :

Visual Basic
1
2
3
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
End Sub

1) Закройте книгу с сохранением.
2) При открытии опять попросит запрос
3) После 2-го закрытия должно работать…

Удачи….



0



0 / 0 / 0

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

Сообщений: 13

23.01.2019, 22:03

 [ТС]

7

Не получается что-то. Пытался и так и сяк, не знаю как сделать



0



pashulka

4131 / 2235 / 940

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

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

23.01.2019, 22:33

8

Лучший ответ Сообщение было отмечено Irbtim как решение

Решение

Irbtim, У метода .Open есть необязательный именованный аргумент UpdateLinks

UpdateLinks Optional Variant. Specifies the way links in the file are updated. If this argument is omitted, the user is prompted to specify how links will be updated. Otherwise, this argument is one of the values listed in the following table.

Value Meaning
0 Doesn’t update any references
1 Updates external references but not remote references
2 Updates remote references but not external references
3 Updates both remote and external references

Вот его и используйте, т.е.

Visual Basic
1
Set WorkBk = Workbooks.Open(FileName, 0)



1



2632 / 1637 / 745

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

Сообщений: 5,147

24.01.2019, 08:34

9

Цитата
Сообщение от Irbtim
Посмотреть сообщение

Пытался и так и сяк, не знаю как сделать

Попробуйте
File-Options-Advanced— в абзаце General уберите галочку с «Ask to Update automatic links»

Миниатюры

Сбор данных, без обновление связей
 



0



0 / 0 / 0

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

Сообщений: 13

25.01.2019, 13:37

 [ТС]

10

Спасибо сработало. примного благодарен

Добавлено через 44 секунды
Спасибо, но у меня так не галочки. Все равно спасибо.



0



Как отключить обновление диапазона ячеек с формулами

djon2012

Дата: Вторник, 17.09.2019, 23:49 |
Сообщение № 1

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

Здравствуйте! Подскажите пожалуйста как макросом отключить обновление определенного диапазона ячеек с формулами, остальные ячейки автоматически обновляются. Например отключаем автоматическое обновление формул в диапазоне ячеек A1:Y10000 (в моих условиях приблизительно 15000000 ячеек с формулами пересчет которых надо на время остановить), проделываем нужные операции и опять включаем автоматический пересчет формул в указанных ячейках. Данная операция нужна для более быстрой обработки макроса. Спасибо!

 

Ответить

gling

Дата: Среда, 18.09.2019, 00:07 |
Сообщение № 2

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

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

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


2010

Здравствуйте. А вы уверены что нужно остановить пересчет определенного диапазона, а не пересчитать определенный диапазон?
[vba]

Код

ActiveSheet.Range(«A1:C3»).Calculate

[/vba]Это пересчет определенного диапазона при выключенном автопересчете формул.


ЯД-41001506838083

 

Ответить

djon2012

Дата: Среда, 18.09.2019, 00:13 |
Сообщение № 3

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

gling спасибо вам за быстрый ответ. Мне нужно остановить пересчет формул именно определенного диапазона а затем снова включить.

 

Ответить

gling

Дата: Среда, 18.09.2019, 00:26 |
Сообщение № 4

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

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

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


2010

Остановите пересчет всей книги[vba]

Код

Application.Calculation = xlManual

[/vba]Пересчитайте нужный диапазон [vba]

Код

ActiveSheet.Range(«A1:C3»).Calculate

[/vba]Включите вновь автопересчет[vba]

Код

Application.Calculation = xlAutomatic

[/vba] Или всё же настаиваете на отключении формул в определенном диапазоне? Только мне не понятна такая процедура, ведь при включении автопересчета все формулы в книге будут пересчитаны и это займет время.


ЯД-41001506838083

Сообщение отредактировал glingСреда, 18.09.2019, 00:28

 

Ответить

djon2012

Дата: Среда, 18.09.2019, 06:38 |
Сообщение № 5

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

Здравствуйте gling! Да мне нужно отключить пересчет формул именно в определенном диапазоне. И да, вы абсолютно правы, что при включенном автопересчета ВСЕ ФОРМУЛЫ в книге будут пересчитаны и это ЗАЙМЕТ ВРЕМЯ. Как я уже упоминал у меня на листе более 15 000 000 формул в определенном диапазоне, обновление которых мне нужно только в определенный момент, а далее отключить пересчет этого диапазона ячеек с формулами. На листе кроме этого диапазона ячеек с формулами (15 000 000 ячеек), есть и с 100-ню других ячеек с формулами пересчет которых мне нужен постоянно. При работе макроса идет очень долгое его выполнение так как в процессе его работы идет постоянный перерасчет ВСЕХ ФОРМУЛ в книге а это напомню болеее 15 000 000 ячеек. Вот для этого мне нужно отключить перерасчет именно этого диапазона ячеек с 15 000 000 формул, оставляя возможность работать остальным ячейкам с формулами потом за надобностью снова включить чтобы обновить данные и отключить. Очень старался обьяснить аж взопрел. Пойду ка я випью кофейку, чего и вам желаю. Спасибо!

 

Ответить

Nic70y

Дата: Среда, 18.09.2019, 08:23 |
Сообщение № 6

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

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

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


Excel 2010

15000000 ячеек с формулами

прикольно.

обновление которых мне нужно только в определенный момент

так может заменить их макросом (или еще чем) и запускать его в определенный момент


ЮMoney 41001841029809

 

Ответить

djon2012

Дата: Среда, 18.09.2019, 08:58 |
Сообщение № 7

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

Здравствуйте Nic70y. 15000000 ячеек с формулами много я сам в шоке, но заменять их макросом ненужно, нуно отключить макросом их перерасчет.

Сообщение отредактировал djon2012Среда, 18.09.2019, 18:10

 

Ответить

Nic70y

Дата: Среда, 18.09.2019, 09:02 |
Сообщение № 8

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

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

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


Excel 2010

отключить макросом их перерасчет.

именно в такой трактовке это не возможно.


ЮMoney 41001841029809

 

Ответить

K-SerJC

Дата: Среда, 18.09.2019, 11:19 |
Сообщение № 9

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

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

Сообщений: 487


Репутация:

86

±

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


Excel 2013

а если отключить расчет
по событию листа change определить диапазон ячеек которые не относятся в этим 15000000 и запустить пересчет этого диапазона?

танец с бубнами конечно, но как вариант… ;)


Благими намерениями выстелена дорога в АД.

 

Ответить

djon2012

Дата: Среда, 18.09.2019, 19:37 |
Сообщение № 10

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

А возможно ли сделать так чтобы отключить автоматический пересчет формул на одном листе книги Excel, но оставить его на другом. Другими словами на Лист1 формулы не будут автоматически пересчитываться, а на Лист2 будут автоматически пересчитываться

 

Ответить

K-SerJC

Дата: Четверг, 19.09.2019, 08:28 |
Сообщение № 11

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

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

Сообщений: 487


Репутация:

86

±

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


Excel 2013

но оставить его на другом.

все равно танец с бубном
отключить автоматический пересчет

а в модуле листа где надо считать
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
Me.Cells.Calculate
End Sub

[/vba]

персчет будет при изменении на этом листе

если надо пересчитывать формулы на листе при внесении изм из другого
тогда в модуль листа при изменении данных в котором запускается пересчет:
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Sheets(«Лист1»).Cells.Calculate
End Sub

[/vba]

пересчет на Лист1 будет


Благими намерениями выстелена дорога в АД.

Сообщение отредактировал K-SerJCЧетверг, 19.09.2019, 08:32

 

Ответить

djon2012

Дата: Четверг, 19.09.2019, 08:52 |
Сообщение № 12

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

Ранг: Форумчанин

Сообщений: 106


Репутация:

0

±

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


Excel 2010

K-SerJC спасибо вам большое. Попробую.

 

Ответить

Gustav

Дата: Четверг, 19.09.2019, 11:36 |
Сообщение № 13

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

Ранг: Старожил

Сообщений: 2398


Репутация:

986

±

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


начинал с Excel 4.0, видел 2.1

Можно попробовать без программирования обернуть все формулы условием, зависящим от некоторой «управляющей» ячейки (например, A1). Т.е., например, имеющуюся формулу (допустим, в ячейке B2):

превратить в

И далее вводить в ячейку A1 число 1, если пересчет формул нужен, и число 0 (или просто стирать значение), если пересчет не нужен.

Точно не уверен (но можно же проверить на практике!), но, вроде бы, если по условию получается ЛОЖЬ, то выражение в функции ЕСЛИ, соответствующее значению ИСТИНА, не вычисляется/не пересчитывается (и наоборот, соответственно, тоже). Т.е., вроде бы, в ЕСЛИ по соображениям экономии всегда вычисляется только одна его часть.

P.S. Провел небольшое исследование. Добавил в формулу вызов пользовательской функции (UDF):

Код

=ЕСЛИ($A$1;B1+1+qwerty())

Где сама UDF имеет такой вид:
[vba]

Код

Function qwerty()
    qwerty = 10 ‘и на эту строку ставим точку прерывания
End Function

[/vba]
Так вот, при «выключенном пересчете» (при A1 = 0) любые изменения, производимые с ячейкой B1, не вызывают захода в UDF и останова на точке прерывания. Установка же значения A1 = 1 тут же приводит к такому останову.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал GustavЧетверг, 19.09.2019, 11:49

 

Ответить

UPDATE:

After all the details summarized and discussed, I spent 2 fair hours in checking the options, and this update is to dot all is.

Preparations

First of all, I performed a clean Office 2010 x86 install on Clean Win7 SP1 Ultimate x64 virtual machine powered by VMWare (this is usual routine for my everyday testing tasks, so I have many of them deployed).

Then, I changed only the following Excel options (i.e. all the other are left as is after installation):

  • Advanced > General > Ask to update automatic links checked:

Ask to update automatic links

  • Trust Center > Trust Center Settings... > External Content > Enable All... (although that one that relates to Data Connections is most likely not important for the case):

External Content

Preconditions

I prepared and placed to C: a workbook exactly as per @Siddharth Rout suggestions in his updated answer (shared for your convenience): https://www.dropbox.com/s/mv88vyc27eljqaq/Book1withLinkToBook2.xlsx Linked book was then deleted so that link in the shared book is unavailable (for sure).

Manual Opening

The above shared file shows on opening (having the above listed Excel options) 2 warnings — in the order of appearance:

WARNING #1

This workbook contains links to other data sources

After click on Update I expectedly got another:

WARNING #2

This workbook contains one or more links that cannot be updated

So, I suppose my testing environment is now pretty much similar to OP‘s) So far so good, we finally go to

VBA Opening

Now I’ll try all possible options step by step to make the picture clear. I’ll share only relevant lines of code for simplicity (complete sample file with code will be shared in the end).

1. Simple Application.Workbooks.Open

Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"

No surprise — this produces BOTH warnings, as for manual opening above.

2. Application.DisplayAlerts = False

Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True

This code ends up with WARNING #1, and either option clicked (Update / Don't Update) produces NO further warnings, i.e. Application.DisplayAlerts = False suppresses WARNING #2.

3. Application.AskToUpdateLinks = False

Application.AskToUpdateLinks = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.AskToUpdateLinks = True

Opposite to DisplayAlerts, this code ends up with WARNING #2 only, i.e. Application.AskToUpdateLinks = False suppresses WARNING #1.

4. Double False

Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True

Apparently, this code ends up with suppressing BOTH WARNINGS.

5. UpdateLinks:=False

Application.Workbooks.Open Filename:="C:Book1withLinkToBook2.xlsx", UpdateLinks:=False

Finally, this 1-line solution (originally proposed by @brettdj) works the same way as Double False: NO WARNINGS are shown!

Conclusions

Except a good testing practice and very important solved case (I may face such issues everyday while sending my workbooks to 3rd party, and now I’m prepared), 2 more things learned:

  1. Excel options DO matter, regardless of version — especially when we come to VBA solutions.
  2. Every trouble has short and elegant solution — together with not obvious and complicated one. Just one more proof for that!)

Thanks very much to everyone who contributed to the solution, and especially OP who raised the question. Hope my investigations and thoroughly described testing steps were helpful not only for me)

Sample file with the above code samples is shared (many lines are commented deliberately): https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm

Original answer (tested for Excel 2007 with certain options):

This code works fine for me — it loops through ALL Excel files specified using wildcards in the InputFolder:

Sub WorkbookOpening2007()

Dim InputFolder As String
Dim LoopFileNameExt As String

InputFolder = "D:DOCUMENTS" 'Trailing "" is required!

LoopFileNameExt = Dir(InputFolder & "*.xls?")
Do While LoopFileNameExt <> ""

Application.DisplayAlerts = False
Application.Workbooks.Open (InputFolder & LoopFileNameExt)
Application.DisplayAlerts = True

LoopFileNameExt = Dir
Loop

End Sub

I tried it with books with unavailable external links — no warnings.

Sample file: https://www.dropbox.com/s/9bwu6pn8fcogby7/NoWarningsOpen.xlsm

А Workbooks.Open Filename:=iFileName$, UpdateLinks:=0 у вас не срабатывает?

Вам именно программно надо отключить связи или можно и руками?

Вот цитата из справки, может она поможет
1) Отключение запроса на обновление связей при открытии книг и автоматическое обновление связей
Этот режим задается только для текущего пользователя и влияет на все открываемые книги. На работу других пользователей данной книги он не влияет. Этот режим также применяется к связям с другими программами.

Выберите в меню Сервис команду Параметры, а затем откройте вкладку Правка .
Снимите флажок Запрашивать об обновлении автоматических связей. Если этот флажок снят, связи будут обновляться автоматически, без выдачи запроса.

2) Отключение выдачи запроса на обновление связей данной книги и обновление связей вручную
Предупреждение. Этот режим влияет на всех пользователей этой книги. Если отключить обновление связей и выдачу запроса, пользователи этой книги не будут знать, что данные устарели.

В меню Правка выберите команду Связи.
Нажмите кнопку Запрос на обновление связей.
Выберите требуемый режим.
Примечание. При наличии разорванных связей сообщения об этом будут выдаваться в любом режиме.

Like this post? Please share to your friends:
  • Не найдена excel application
  • Не обновляется формат в ячейке excel
  • Не найден файл docx в word
  • Не обновляется источник данных excel
  • Не найден указанный модуль word