Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2009, 21:35   #1
mephist
Форумчанин
 
Регистрация: 01.05.2009
Сообщений: 200
По умолчанию Параметры Open!

На форуме много похожих тем, но ни одна не подходит!
Итак моя глобальная проблема: я копирую много-много данных из разных Экселевских книг в одну (где-то делаю ссылки, где-то копирую значения, где-то копирую ячеки целиком с форматированием). делаю это с открыванием книг. Все было бы хорошо, но если в файлах-источниках находится хотя бы одна ссылка на внешний источник (другую книгу), то Эксель сразу зависает. Никаких сообщений или предложений обновить связи нет - просто зависает. (Спарведливости ради,если делать это без открывания книг все работает, но очень медленно)
Если взять такой касячный файл-источник(с ссылками) открыть руками(нажать на иконку) и перевести все данные в значения:
Код:
                Dim Sh As Worksheet
                For Each Sh In Sheets
                    Sh.Unprotect
                    Sh.UsedRange.Value = Sh.UsedRange.Value
                Next
и после это запустить макрос, то все работает идеально.
Если же открыть файл-источник из макроса и пытаться перевести также данные в значения, то ничего не получается и он виснет.
Делаю я это вот так:
Код:
        Filename = Replace(Workbooks("8mc.xlsm").FullName, Workbooks("8mc.xlsm").Name, asCenterNames(li))
        With Workbooks.Open(Filename, , , , , , True)
                ActiveWorkbook.RemovePersonalInformation = False
                Dim Sh As Worksheet
                For Each Sh In Sheets
                    Sh.Unprotect
                    Sh.UsedRange.Value = Sh.UsedRange.Value
                Next
        End With
Сами можете судить,что я происходят одинаковые вещи. Если делать что-то руками и автоматически результат ведь должен быть один?!?
1) Может нужно открыть файл с особыми парметрами??? Может кто-нибудь меня просветить насчет парметров Open :Origin, Delimiter, Editable, Notify, Converter и др.???
2) Можно как-нибудь насовсем отключить обновление ссылок на время во всем Экселе? Может хоть это поможет???

Последний раз редактировалось mephist; 28.07.2009 в 01:12.
mephist вне форума Ответить с цитированием
Старый 28.07.2009, 05:39   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Можно как-нибудь насовсем отключить обновление ссылок на время во всем Экселе?
Зачем? Можно просто макросом открыть требуемый файл, запретив при этом обновление всех связей. Например, так:
Код:
Workbooks.Open Filename:="D:\Temp\Книга1.xls", UpdateLinks:=0
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Microsoft Access и Open Office Derius БД в Delphi 4 08.07.2009 15:28
Иконки New, Open, Save amelie Win Api 2 07.08.2008 17:20
Помогите с макросами на Save As и Open Leanna Microsoft Office Excel 3 04.11.2007 21:14
Url open Pavel_aress Общие вопросы Delphi 12 01.08.2007 20:40
Олимпиада по программированию kpi-open Morion Свободное общение 4 20.06.2007 13:42