#excel #performance #delay #lag
Вопрос:
У меня есть файл excel, содержащий примерно 6800 строк, я добавил изображения/объекты в каждую строку и сохранил файл.
Этот файл excel(.xlsx) теперь имеет размер 17,2 МБ, Проблема, с которой я столкнулся, заключается в том, что после загрузки всех изображений я не могу работать с файлом. Пожалуйста, обратите внимание ниже, что все это произошло.
- Открытие файла занимает около 10 минут 8 секунд,
- Для любых дальнейших действий (сохранение, фильтрация, вставка новой строки, удаление старой строки, выбор всех объектов в файле) файл сначала переходит в режим «Не отвечает», а затем переходит в активное состояние. (это может занять от 10 минут до 15 минут)
Как я добавил все изображения в строки?
- Для этого я использовал поиск изображений и использовал следующую функцию индекса и сопоставления для поиска изображений в каждой строке.
=INDEX(Sheet1!$B$2:$B$6800,MATCH(Sheet1!$A$2,Sheet2!$A$2:$A$6800,0))
- Я использовал следующий код для дублирования изображений и значений данных для каждого изображения
Sub images() Dim rngSel As Range Dim rngHdr As Range Dim rngCell As Range Dim sht As Worksheet Dim myshape As Shape Application.ScreenUpdating = False If TypeOf Selection Is Range Then Set rngHdr = Selection.Cells(1, 1) Set sht = rngHdr.Parent ' find shape For Each myshape In ActiveSheet.Shapes If myshape.Type = msoAutoShape Or myshape.Type = msoPicture Then If Intersect(myshape.TopLeftCell, rngHdr) Is Nothing Then Else myshape.Copy Exit For End If End If Next myshape For Each rngCell In Selection.Cells If rngCell.Address <> rngHdr.Address Then sht.Paste rngCell End If Next rngCell End If Application.ScreenUpdating = True End Sub
Нужна помощь в том, чтобы сделать файл работоспособным.
Комментарии:
1. Excel-это не та программа, которая заставляет пользователя в течение нескольких минут иметь дело с полностью не реагирующим пользовательским интерфейсом. Когда это все равно произойдет, вы попытаетесь временно отключить установленное антивирусное ПО, чтобы посмотреть, имеет ли это значение.
2. @HansPassant ошибка произошла из-за поиска изображения, исправить ее в самом файле невозможно, поэтому мне пришлось перестроить файл. Спасибо за вашу поддержку.
Ответ №1:
Войдите в безопасный режим, нажав и удерживая Ctrlклавишу во время запуска программы или с помощью /safe
переключателя ( excel.exe /safe
) в командной строке. Нажмите «Файл» > «Параметры» >> «Надстройки». … Затем перезапустите Excel.
Комментарии:
1. потребовалось 9 минут 48 секунд, чтобы войти в файл в безопасном режиме. и в безопасном режиме он все равно переходит в режим отсутствия ответа. Также было два дополнительных модуля — KUTOOLS и RKTOOLS, оба были отключены.
2. ,Спасибо за вашу поддержку, но ошибка произошла из-за поиска изображений. когда просматривалось 6000 фотографий, prg не смогла с этим справиться. Пришлось перестроить файл.
Ответ №2:
Находится ли файл в сетевой папке? Попробуйте использовать его локально. Также попробуйте настроить расчет вручную:
Application.Calculation = xlManual
Комментарии:
1. Привет @J0eBl4ck Спасибо за вашу поддержку, но ошибка произошла из-за поиска изображения. когда просматривалось 6000 фотографий, prg не смогла с этим справиться. Пришлось перестроить файл. Спасибо за вашу поддержку
Ответ №3:
Ничего не сработало, мне пришлось снова перестроить файл. Проблема заключалась в том, что несколько фотографий искали значение по этой формуле =INDEX(Sheet1!$B$2:$B$6800,MATCH(Sheet1!$A$2,Sheet2!$A$2:$A$6800,0))
, без этого файл работает так, как должен.
Спасибо за всю вашу поддержку.