Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Автоматическое обновление и адрес файла - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое обновление и адрес файла (Макросы/Sub)
Автоматическое обновление и адрес файла
feksel Дата: Вторник, 20.09.2016, 11:11 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Здравствуйте знатоки)))
В VBA я ни чего не понимаю, но без этого наверное тут ни как не обойтись.
У меня есть файл на работе, выложить его к сожалению нет возможностей, но попробую пояснить.
1. Файл долго работает при расчете формул и я разделил его на 2 части. Работа стала на много быстрее и все же есть несколько НО после этого.
2. Теперь открывая 1 или 2 файл он выдает - Эта книга содержит связи с внешним источником…… Обновить - Не обновлять.
3. В формулах после разделения есть скажем так адрес 'C:\Users\Джим\Desktop\[1.xlsx] и если я меняю имя файла или переношу его в другую папку, то естественно формулы уже не работают.
Возможно ли сделать, чтобы
1. Обновление данных производилось автоматически в этих двух файлах.
2. И если будет меняться имя 1 или 2 файла, или переносится в другое место, то так же формулы работали. (Хотя имена файлов в принципе не так важно, главное чтобы при переносе в другое место работали формулы).
 
Ответить
СообщениеЗдравствуйте знатоки)))
В VBA я ни чего не понимаю, но без этого наверное тут ни как не обойтись.
У меня есть файл на работе, выложить его к сожалению нет возможностей, но попробую пояснить.
1. Файл долго работает при расчете формул и я разделил его на 2 части. Работа стала на много быстрее и все же есть несколько НО после этого.
2. Теперь открывая 1 или 2 файл он выдает - Эта книга содержит связи с внешним источником…… Обновить - Не обновлять.
3. В формулах после разделения есть скажем так адрес 'C:\Users\Джим\Desktop\[1.xlsx] и если я меняю имя файла или переношу его в другую папку, то естественно формулы уже не работают.
Возможно ли сделать, чтобы
1. Обновление данных производилось автоматически в этих двух файлах.
2. И если будет меняться имя 1 или 2 файла, или переносится в другое место, то так же формулы работали. (Хотя имена файлов в принципе не так важно, главное чтобы при переносе в другое место работали формулы).

Автор - feksel
Дата добавления - 20.09.2016 в 11:11
lFJl Дата: Вторник, 20.09.2016, 11:31 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 182
Репутация: 3 ±
Замечаний: 0% ±

Excel 2007
feksel, Переносите оба файла, или только один? Одновременно или перенесли, запустили...
Можете подробней процесс описать?
Может хотя бы часть файлов?
 
Ответить
Сообщениеfeksel, Переносите оба файла, или только один? Одновременно или перенесли, запустили...
Можете подробней процесс описать?
Может хотя бы часть файлов?

Автор - lFJl
Дата добавления - 20.09.2016 в 11:31
feksel Дата: Вторник, 20.09.2016, 11:57 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Переносите оба файла, или только один? Одновременно или перенесли, запустили...


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

Можете подробней процесс описать?
Может хотя бы часть файлов?

Вот создал подобный простенький файлик, формулы конечно в оригинальном сложнее на много и листов конечно по несколько, но смысл в принципе одинаковый.
К сообщению приложен файл: Desktop.rar(12Kb)


Сообщение отредактировал feksel - Вторник, 20.09.2016, 12:00
 
Ответить
Сообщение
Переносите оба файла, или только один? Одновременно или перенесли, запустили...


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

Можете подробней процесс описать?
Может хотя бы часть файлов?

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

Автор - feksel
Дата добавления - 20.09.2016 в 11:57
_Boroda_ Дата: Вторник, 20.09.2016, 12:06 | Сообщение № 4
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3923 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Самое простое - не переносите файлы, а откройте их (оба) и пересохраните в нужное место.
Если все-таки нужно переносить, то после переноса откройте файлы и в каждом поменяйте путь для ссылки на другой файл
Данные - Изменить связи

А чтобы не спрашивал про обновление, нажмите там (Данные - Изменить связи) на кнопку "Запрос на обновление связей" и поставьте нужную точку. Возможно, что придется еще изменить настройки безопасности
Файл - Параметры - Центр управления безопасностью (ЦУБ) - параметры ЦУБ


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеСамое простое - не переносите файлы, а откройте их (оба) и пересохраните в нужное место.
Если все-таки нужно переносить, то после переноса откройте файлы и в каждом поменяйте путь для ссылки на другой файл
Данные - Изменить связи

А чтобы не спрашивал про обновление, нажмите там (Данные - Изменить связи) на кнопку "Запрос на обновление связей" и поставьте нужную точку. Возможно, что придется еще изменить настройки безопасности
Файл - Параметры - Центр управления безопасностью (ЦУБ) - параметры ЦУБ

Автор - _Boroda_
Дата добавления - 20.09.2016 в 12:06
feksel Дата: Пятница, 23.09.2016, 23:59 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
В одном месте нашел запись, вроде по этой формуле можно задействовать авто замену, как раз то что мне надо, но что только не пробовал не получается.
Менял форматы моих файлов на - Книга с поддержкой макросов, потом в формуле как только и куда только не вставлял - C:\Users\Джим\Desktop\[2.xlsx] и без таких [] скобок, эту запись. Не работает, подскажите как ее задействовать??? Или эта запись не подходит по моему вопросу???

Вот что пробовал задействовать:

[vba]
Код
Sub ChangeLinks()
  Dim oFld As Field 'Поле
  Dim OldFileName As String 'Старое имя файла
  Dim NewFileName As String 'Новое имя файла
  Dim FieldCode As String 'Код поля
  Dim ReplaceAllPath As Boolean 'Заменять весь путь к файлу или только имя
  Dim StartPath As Integer, EndPath As Integer 'Начало и конец пути к файлу в коде поля
  
  'Ввод старого имени файла
  OldFileName = InputBox("C:\Users\Джим\Desktop\[2.xlsx]", "Изменение ссылок", OldFileName)
  If Len(OldFileName) = 0 Then Exit Sub
  
  'Выбор нового файла
  With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "C:\Users\Джим\Desktop\[2.xlsx]"
    .AllowMultiSelect = False
    .ButtonName = "Выбрать"
    .Filters.Clear
    .Filters.Add "Таблицы Excel", "*.xls; *.xlsx"
    If .Show Then NewFileName = .SelectedItems(1) Else Exit Sub
  End With
  
  'Если изменилось не только имя, но и местоположение, то можно заменить весь путь
  ReplaceAllPath = MsgBox("Заменять весь путь? Нажмите ""Нет"", чтобы заменить только имя файла", vbYesNo + vbInformation, "Изменение ссылок") = vbYes
  
  NewFileName = Replace(NewFileName, "\", "\\")
  'Перебираем все поля в документе
  For Each oFld In ActiveDocument.Fields
    If oFld.Type = wdFieldLink Then 'Если поле является полем ссылки
      FieldCode = oFld.Code.Text
      If InStr(oFld.Code.Text, "Excel.Sheet") <> 0 And InStr(FieldCode, "\\" & OldFileName) <> 0 Then 'Если поле ссылается на лист Excel и на нужный файл
        If ReplaceAllPath Then 'Если нужно заменить весь путь
          StartPath = InStr(FieldCode, ":\\") - 2
          EndPath = InStr(FieldCode, "\\" & OldFileName) + Len(OldFileName) + 2
          FieldCode = Mid(FieldCode, 1, StartPath) & NewFileName & Mid(FieldCode, EndPath)
        Else 'Если нужно заменить только имя файла
          FieldCode = Replace(FieldCode, OldFileName, Mid(NewFileName, InStrRev(NewFileName, "\") + 1))
        End If
      End If
    End If
    oFld.Code.Text = FieldCode
  Next
End Sub
[/vba]
К сообщению приложен файл: 8884383.rar(12Kb)


Сообщение отредактировал feksel - Суббота, 24.09.2016, 00:11
 
Ответить
СообщениеВ одном месте нашел запись, вроде по этой формуле можно задействовать авто замену, как раз то что мне надо, но что только не пробовал не получается.
Менял форматы моих файлов на - Книга с поддержкой макросов, потом в формуле как только и куда только не вставлял - C:\Users\Джим\Desktop\[2.xlsx] и без таких [] скобок, эту запись. Не работает, подскажите как ее задействовать??? Или эта запись не подходит по моему вопросу???

Вот что пробовал задействовать:

[vba]
Код
Sub ChangeLinks()
  Dim oFld As Field 'Поле
  Dim OldFileName As String 'Старое имя файла
  Dim NewFileName As String 'Новое имя файла
  Dim FieldCode As String 'Код поля
  Dim ReplaceAllPath As Boolean 'Заменять весь путь к файлу или только имя
  Dim StartPath As Integer, EndPath As Integer 'Начало и конец пути к файлу в коде поля
  
  'Ввод старого имени файла
  OldFileName = InputBox("C:\Users\Джим\Desktop\[2.xlsx]", "Изменение ссылок", OldFileName)
  If Len(OldFileName) = 0 Then Exit Sub
  
  'Выбор нового файла
  With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "C:\Users\Джим\Desktop\[2.xlsx]"
    .AllowMultiSelect = False
    .ButtonName = "Выбрать"
    .Filters.Clear
    .Filters.Add "Таблицы Excel", "*.xls; *.xlsx"
    If .Show Then NewFileName = .SelectedItems(1) Else Exit Sub
  End With
  
  'Если изменилось не только имя, но и местоположение, то можно заменить весь путь
  ReplaceAllPath = MsgBox("Заменять весь путь? Нажмите ""Нет"", чтобы заменить только имя файла", vbYesNo + vbInformation, "Изменение ссылок") = vbYes
  
  NewFileName = Replace(NewFileName, "\", "\\")
  'Перебираем все поля в документе
  For Each oFld In ActiveDocument.Fields
    If oFld.Type = wdFieldLink Then 'Если поле является полем ссылки
      FieldCode = oFld.Code.Text
      If InStr(oFld.Code.Text, "Excel.Sheet") <> 0 And InStr(FieldCode, "\\" & OldFileName) <> 0 Then 'Если поле ссылается на лист Excel и на нужный файл
        If ReplaceAllPath Then 'Если нужно заменить весь путь
          StartPath = InStr(FieldCode, ":\\") - 2
          EndPath = InStr(FieldCode, "\\" & OldFileName) + Len(OldFileName) + 2
          FieldCode = Mid(FieldCode, 1, StartPath) & NewFileName & Mid(FieldCode, EndPath)
        Else 'Если нужно заменить только имя файла
          FieldCode = Replace(FieldCode, OldFileName, Mid(NewFileName, InStrRev(NewFileName, "\") + 1))
        End If
      End If
    End If
    oFld.Code.Text = FieldCode
  Next
End Sub
[/vba]

Автор - feksel
Дата добавления - 23.09.2016 в 23:59
_Boroda_ Дата: Суббота, 24.09.2016, 13:26 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 9348
Репутация: 3923 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Или эта запись не подходит по моему вопросу???

Совершенно верно.
Это макрос обновления ссылок в кодах полей LINK Ворда.
Для Excel тоже можно написать похожее, но зачем? Неужели Вы так часто переносите свои связанные файлы?


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

Совершенно верно.
Это макрос обновления ссылок в кодах полей LINK Ворда.
Для Excel тоже можно написать похожее, но зачем? Неужели Вы так часто переносите свои связанные файлы?

Автор - _Boroda_
Дата добавления - 24.09.2016 в 13:26
feksel Дата: Суббота, 24.09.2016, 18:12 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Неужели Вы так часто переносите свои связанные файлы?

Да вот в этом то и дело, что они часто переносятся и сбрасываются на отчеты. На отчеты сбросил, ссылки естественно ни кто не менял в итоге мне по шеям(((
 
Ответить
Сообщение
Неужели Вы так часто переносите свои связанные файлы?

Да вот в этом то и дело, что они часто переносятся и сбрасываются на отчеты. На отчеты сбросил, ссылки естественно ни кто не менял в итоге мне по шеям(((

Автор - feksel
Дата добавления - 24.09.2016 в 18:12
vea145 Дата: Четверг, 29.09.2016, 21:36 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Попробуй так
 
Ответить
СообщениеПопробуй так

Автор - vea145
Дата добавления - 29.09.2016 в 21:36
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Автоматическое обновление и адрес файла (Макросы/Sub)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!