Файл Excel «НЕ ОТВЕЧАЕТ» при открытии

#excel #performance #delay #lag

Вопрос:

У меня есть файл excel, содержащий примерно 6800 строк, я добавил изображения/объекты в каждую строку и сохранил файл.

Этот файл excel(.xlsx) теперь имеет размер 17,2 МБ, Проблема, с которой я столкнулся, заключается в том, что после загрузки всех изображений я не могу работать с файлом. Пожалуйста, обратите внимание ниже, что все это произошло.

  1. Открытие файла занимает около 10 минут 8 секунд,
  2. Для любых дальнейших действий (сохранение, фильтрация, вставка новой строки, удаление старой строки, выбор всех объектов в файле) файл сначала переходит в режим «Не отвечает», а затем переходит в активное состояние. (это может занять от 10 минут до 15 минут)

Как я добавил все изображения в строки?

  1. Для этого я использовал поиск изображений и использовал следующую функцию индекса и сопоставления для поиска изображений в каждой строке.

    =INDEX(Sheet1!$B$2:$B$6800,MATCH(Sheet1!$A$2,Sheet2!$A$2:$A$6800,0))

  2. Я использовал следующий код для дублирования изображений и значений данных для каждого изображения
     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)) , без этого файл работает так, как должен.

Спасибо за всю вашу поддержку.