Runtime error 7 out of memory как исправить

Ошибка Out of memory — как исправить

Многие пользователи ПК во время работы с какой-либо программой могут столкнуться с «вылетом» указанной программы, и появившимся сообщением «Out of memory». Возникшая проблема может иметь множество причин, начиная от банального недостатка памяти на пользовательском ПК, и заканчивая некорректной работой с памятью какой-либо программы.

Окно с сообщением об ошибке «Out of memory»

Причины появления дисфункции

Ошибка «Out of memory» (в переводе дословно «вне памяти», или «недостаточно памяти») обычно возникает при недостатке памяти на пользовательском компьютере. В частности же, в появлении данной ошибки «виновен» следующий набор факторов:

  • Недостаток памяти RAM на вашем ПК (рабочей памяти, планки которой установлены на материнской плате вашего компьютера). Если на вашем компьютере установлен всего 1 гигабайт памяти, вы будете встречаться с описываемой ошибкой довольно часто. Нормальным же ныне считается наличие на компьютере 4 гигабайт памяти и выше;
  • Недостаток места на жёстком диске.

Когда вашему компьютеру не хватает физической R.A.M. памяти, он заимствует часть места на жёстком диске, и создаёт так называемую «виртуальную память». Система временно хранит в такой виртуальной памяти ту часть данных, которая не помещается в памяти обычной. Такие данные обычно хранятся в файле «pagefile.sys», размер которого может увеличиваться или уменьшаться в зависимости от специфики работы вашей ОС. Если на диске будет недостаточно места, файл «pagefile.sys» не сможет расти, и пользователь получит ошибку «out of memory».

  • При одновременном запуске на ПК большого количества программ, каждая из которых бронирует часть памяти ПК под свои задачи;
  • При запуск большого количества вкладок браузера. Веб-навигаторы уровня «Firefox» или «Google Chrome» способны занимать от 500 мегабайт до 1 гигабайта памяти под свой функционал, при этом число открытых вкладок и соответствующей обслуживающей памяти может быть ограничено системой. Специалисты Майрософт называют такую проблему «the desktop heap limitation» — «ограничение кучи рабочего стола»);
  • Некорректная работа с памятью ряда программ (наиболее часто это игровые программы);
  • Не оптимальный размер файла подкачки, с которым работает система.

Обычно причиной возникновения проблемы является недостаток ОЗУ на компьютере пользователя

Как исправить ошибку «Out of memory»

Для решения указанной проблемы рекомендую сделать следующее:

  1. Перезагрузите ваш ПК, и запустите требуемую программу вновь. Возможно, что проблема имеет случайный характер, и более повторяться не будет;
  2. Перед запуском нужной программы закройте другие ненужные программы (браузер, музыкальный или видео плеер, текстовый или графический редактор, мессенджер и так далее);
  3. Если проблема возникает во время серфинга в сети, закройте всё множество вкладок вашего браузера (при наличии), оставив лишь одну или две.

Частой причиной проблемы является множество открытых вкладок в браузере пользователя

Альтернативным вариантом решения проблемы «Out of memory» является установка соответствующего фикса от Майкрософт. Или использование расширений или дополнений для браузера уровня «The Great Suspender» для «Google Chrome», хорошо работающего с ненужными вкладками браузера.

    Добавьте оперативной памяти на ваш ПК. Если у вас на компьютере установлено 1-2 гигабайта памяти, будет оптимальным довести её объём до 4 гигабайт (а для 64-битных Виндовс 7, 8 и 10 версии рекомендую 8 и более гигабайт);

Увеличьте количество памяти на вашем ПК

  • Убедитесь, что на вашем жёстком диске (или SSD) достаточно свободного места. При необходимости, освободите диск от ненужных файлов;
  • Используйте инструмент командной строки BCDEdit для изменения параметров загрузки системы. Если у вас на ПК установлена Виндовс 7 и более, запустите командную строку от имени администратора на Виндовс 7 и Виндовс 10, и в ней наберите:
  • bcdedit/set IncreaseUserVa 3072

    И нажмите на ввод, и перезагрузите ваш ПК. Функционал данной команды позволяет выделить пользовательским приложениям 3 гигабайта оперативной памяти для работы. В некоторых системах этого может быть слишком много, потому если после ввода данной команды система начала чаще сбоить, то введите в командной строке от имени администратора:

    bcdedit /set IncreaseUserVa 2560 — что позволит задействовать 2,5 гигабайта вместо ранее забронированных 3.

    Если ситуацию этим исправить не удалось, верните настройки на состояние по умолчанию:

    bcdedit /deletevalue IncreaseUserVa

      Увеличьте объём файла подкачки. Нажмите кнопку «Пуск», в строке поиска введите sysdm.cpl и нажмите ввод. В открывшемся окне настроек системы выберите «Дополнительно» — «Быстродействие» — «Параметры» — «Дополнительно» — «Виртуальная память» — «Изменить». Снимите галочку с опции автоматического размера, поставьте галочку на «Указать размер», и поставьте исходный размер в 8192, и максимальный в 8192. Затем выберите «Задать»;

    Установите нужный размер файла подкачки

  • Если ошибка возникает при использовании игровой программы, перейдите в её графические настройки, и выберите их минимальные значения;
  • Произведите правильную настройку «Java». Для решения проблем с игровой программой «Майнкрафт» перейдите в Панель управления Виндовс, найдите там «Java» и запустите данную среду исполнения. Нажмите на кнопку «View», затем дважды кликните на «Runtime Parametres». Введите туда –Xms256m – Xmx3072m (или больше). Xms – это минимальное выделение ОЗУ, Xmx – максимальное. Значение Xmx рекомендуют устанавливать на процентов 70-80% от общего объёма ОЗУ. Примените изменения, и перезагрузите ваш ПК.
  • Заключение

    Ошибка «Out of memory» может иметь множество причин, связанных как с физическим недостатком памяти на ПК, так и другими детерминантами, изложенными мной выше. Для решения проблемы советую закрыть ненужные программы (вкладки браузера) на вашем компьютере (тем самым разгрузив его память), а самым эффективным инструментом является установка дополнительной планки памяти на ПК, что в большинстве случаев поможет избавиться от ошибки «Out of memory» на вашем компьютере.

    Источник

    Недостаточно памяти (ошибка 7) Out of memory (Error 7)

    Требуется больше памяти, чем доступно, или достигнута граница сегмента в 64 КБ. More memory was required than is available, or a 64K segment boundary was encountered. Эта ошибка имеет следующие причины и решения: This error has the following causes and solutions:

    открыто слишком много приложений, документов или исходных файлов. You have too many applications, documents, or source files open. Закройте все ненужные приложения, документы и исходные файлы; Close any unnecessary applications, documents, or source files that are open.

    есть модуль или процедура слишком большого размера. You have a module or procedure that’s too large. Разбейте большие модули или процедуры на меньшие. Break large modules or procedures into smaller ones. Это не сэкономит память, но может предотвратить достижение границы сегмента в 64 КБ; This doesn’t save memory, but it can prevent hitting 64K segment boundaries.

    Microsoft Windows запущена в стандартном режиме. You are running Microsoft Windows in standard mode. Перезапустите Microsoft Windows в расширенном режиме; Restart Microsoft Windows in enhanced mode.

    Microsoft Windows запущена в расширенном режиме, но не хватает виртуальной памяти. You are running Microsoft Windows in enhanced mode, but have run out of virtual memory. Увеличьте виртуальную память, освободив место на диске, или по меньшей мере убедитесь, что есть доступное место; Increase virtual memory by freeing some disk space, or at least ensure that some space is available.

    запущены резидентные программы. You have terminate-and-stay-resident programs running. Удалите резидентные программы; Eliminate terminate-and-stay-resident programs.

    загружено много драйверов устройств. You have many device drivers loaded. Удалите ненужные драйверы устройств; Eliminate unnecessary device drivers.

    Недостаточно места для общедоступных переменных. You have run out of space for Public variables. Уменьшите количество переменных Public. Reduce the number of Public variables.

    Предпринята попытка обновить свойство, доступное только для чтения. You have attempted to update a property that is read-only. Не присваивайте значения свойствам, которые доступны только для чтения. Do not assign values to read-only properties.

    Для получения дополнительной информации выберите необходимый элемент и нажмите клавишу F1 (для Windows) или HELP (для Macintosh). For additional information, select the item in question and press F1 (in Windows) or HELP (on the Macintosh).

    Поддержка и обратная связь Support and feedback

    Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

    Источник

    RunTime Error 7 — Out of Memory

    Проблема в следующем: все данные с листа помещаю в массив, чтобы их быстрее обработать. На малых объемах все работает хорошо. На больших, близких к граничным, вылезает ошибка «RunTime Error 7 — Out of Memory».

    Она вылезает или на ReDim массива, или на присвоении массиву диапазона с листа.

    ПАМЯТИ 8 ГБ, Excel 64 РАЗРЯДНЫЙ, ОПЕРАЦИОНКА 64 РАЗРЯДНАЯ,Excel 2016
    ошибку даёт Redim на 111 533 строках и 1635 столбцах
    Код

    ПОМОГИТЕ ПОЖАЛУЙСТА.
    ЗАРАНЕЕ СПАСИБО.

    Ошибка Microsoft Visual C++ Runtime Library — Runtime Error
    Здравствуйте. Буду признательна за помощь в моей беде. Совсем в этом не разбираюсь. В Safari при.

    Ошибка времени исполнения: Server Error in ‘/’ Application, Runtime Error
    Здравствуйте, через некоторое время после загрузки страницы если нажимаю на кнопку, то выдает.

    [DCC Error] E2161 Error: RLINK32: Out of memory!
    При компиляции вылаиет такая ошибка (сабж), да у меня много данных храниться в ресурсах, но при это.

    Runtime Error 201:Range check error
    Возникла ошибка(Runtime Error 201:Range check error) var a : array of longint; s.

    Я выходил из такой ситуации следующим образом:
    вычислял общее кол-во строк
    определял кол-во проходов по массиву так, чтобы за один проход в массив загонялось не более 2000 строк(при условии 30 с лишним столбцов)
    и так кусками обрабатывал.

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

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

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

    Источник

     

    axtrace

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

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

    Добрый день!

    Проблема в следующем: все данные с листа помещаю в массив, чтобы их быстрее обработать. На малых объемах все работает хорошо. На больших, близких к граничным, вылезает ошибка «RunTime Error 7 — Out of Memory».

    Она вылезает или на ReDim массива, или на присвоении массиву диапазона с листа.

    Что странно, так это ошибка не вылезает, если использую константу в 1 500 000 (строк), а если через переменную передаю 1048574 (строк), то вылезает. Это и взрывает мне мозг.

    Запускаю функцию Sub StartTransferData() в модуле m2_Main2 в файле (48 Мб):

    https://docs.google.com/file/d/0B_GHN7yiYuxELWVSSmJIM3VUczg/edit?usp=sharing

    весит много, поэтому через гугл драйв.
    Также прикладываю скриншот экрана после нажатия на Debug

    Подскажите, пожалуйста, в чем может быть дело и как бороться.

    Спасибо

    Изменено: axtrace01.02.2013 18:08:48

     

    LastRow=1’048’574, LastCol=16’384 всего 17’179’836’416 ячеек; даже всего по одному байту на ячейку — нужно не менее 16Г памяти только на массив.

    Изменено: Михаил С.01.02.2013 18:54:26

     

    EducatedFool

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

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

    #3

    01.02.2013 18:56:43

    Возможно, дело и не в объёме памяти, требуемой для массива,
    а где-то в объявлении переменных.

    Цитата
    использую константу в 1 500 000 (строк)

    А в коде написано 150 000
    150 тыс — это совсем другое, нежели 1500 000

    PS: Через Redim можно изменять только верхнюю размерность массива
    А зачем вам 2 строки с Redim?
    Уберите первую строку — и всё заработает

    Изменено: EducatedFool01.02.2013 19:01:17

     

    axtrace

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

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

    #4

    01.02.2013 19:00:51

    Цитата
    EducatedFool пишет:
    Через Redim можно изменять только верхнюю размерность массива

    а что такое верхняя размерность массива?

    Цитата
    EducatedFool пишет:
    А зачем вам 2 строки с Redim?
    Уберите первую строку — и всё заработает

    нет, не заработает. я ее специально добавил, чтобы показать, что если указывать размеры как числа, то все ок.
    А если брать их из переменной, то вылетает ошибка.

     

    ikki

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

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

    #5

    01.02.2013 19:04:27

    Цитата
    EducatedFool пишет:
    PS: Через Redim можно изменять только верхнюю размерность массива

    поправка.
    с опцией Preserve.
    да и то — не верхнюю, а самую последнюю.
    здесь Preserve нет.

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #6

    01.02.2013 19:05:55

    Цитата
    axtrace пишет:
    я ее специально добавил, чтобы показать, что если указывать размеры как числа, то все ок.

    А Вы попробуйте присвоить LastRow значение = 1048574. И LastColumn = 15. Первую строку с ReDim Отключите. Что получится?

     

    ikki

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

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

    #7

    01.02.2013 19:14:52

    имхо, 48мб качать никто не будет.
    предыдущая строка кода с 150000 строк в массиве — не «доказательство».
    чему равно LastCol — тоже неизвестно.

    кстати, размеры массива вообще нет нужды определять явно.
    попробуйте так:

    Код
    Dim arr
    arr = range(...).value

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    axtrace

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

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

    #8

    01.02.2013 19:17:50

    Цитата
    Юрий М пишет:
    А Вы попробуйте присвоить LastRow значение = 1048574. И LastColumn = 15. Первую строку с ReDim Отключите. Что получится?

    Получилось, что при первом вызове функции getArrayFromSheet — той, в которой этот ReDim содержиться — проходит все успешно, но во втором вызове — я несколько массивов формирую с разных листов — опять вылетает та же ошибка. Хотя там точно также присваивается LastRow значение = 1048574. И LastColumn = 15

     

    Михаил С.

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

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

    #9

    01.02.2013 19:20:09

    Цитата
    ikki пишет: чему равно LastCol — тоже неизвестно.

    Известно — число столбцов на листе

    Прикрепленные файлы

    • Image 1.gif (29.67 КБ)

     

    ikki

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

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

    #10

    01.02.2013 19:21:51

    Цитата
    Михаил С. пишет: Известно — число столбцов на листе

    нет.
    в приведенном фрагменте — зависит от данных во второй строке.

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    Утечка памяти? Попробуйте убить массив.

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #12

    01.02.2013 19:24:24

    Цитата
    Михаил С. пишет: Известно — число столбцов на листе

    Михаил, не совсем так: это последняя ячейка (номер столбца) по второй строке.

     

    axtrace

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

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

    #13

    01.02.2013 19:24:53

    Цитата
    Юрий М пишет: Утечка памяти? Попробуйте убить массив.

    может быть. а как убивают массивы?
    только если утечка, после перезагрузки и запуска только excel, все должно было быть чисто и хотя бы раз отработать нормально, но нет — все-равно ошибка. Правда, она то на ReDim, а то на следующей строчке с присваиванием:

    nArray = tSheet.Range(tSheet.Cells(1, 1), tSheet.Cells(LastRow, LastCol))

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    Вы сначала объясните — зачем дважды ReDim с одним и тем же nArray?

     

    The_Prist

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

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

    Профессиональная разработка приложений для MS Office

    #15

    01.02.2013 19:37:27

    Попробуйте объявлять процедуру так:

    Код
    getArrayFromSheet(tSheet As Worksheet)

    и раскомментируйте строки с объявлением массива и назначением его через функцию. Или массив объявите глобально.

    Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

     

    ikki

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

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

    #16

    01.02.2013 19:38:03

    вообще-то странно  :(
    вот у меня winXP, Excel 2003, RAM 3Gb, доступно чуть более 2Gb
    массив из 10млн элементов типа Variant занимает ок. 153 Mb
    вот такой код отрабатывает:

    Код
    Sub t()
      Const m& = 500000
      Dim a, b, c, d, e, f
    
      ReDim a(1 To m, 1 To 20) As Variant
      ReDim b(1 To m, 1 To 20) As Variant
      ReDim c(1 To m, 1 To 20) As Variant
      ReDim d(1 To m, 1 To 20) As Variant
      ReDim e(1 To m, 1 To 20) As Variant
      ReDim f(1 To m, 1 To 20) As Variant
    End Sub

    вполне штатно — в диспетчере задач при пошаговом режиме выделение памяти увеличивается по 150+ метров… по завершении процедуры — всё самоубивается (массив локальный).
    но если я меняю константу m на 600000 — то уже при создании 3-го массива вылетает out of memory
    :(
    при этом «выделенная память» выросла от 620М до примерно 1Г
    а в первый раз — благополучно до 1,6Г

    фрилансер Excel, VBA — контакты в профиле
    «Совершенствоваться не обязательно. Выживание — дело добровольное.» Э.Деминг

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #17

    01.02.2013 19:39:48

    Саш, да вообще нужно, как ты советовал:

    Код
    Dim nArray()
    nArray = Range(Cells(1, 1), Cells(lastrow, lastcolumn)).Value
     

    axtrace

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

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

    #18

    01.02.2013 19:42:40

    Цитата
    Юрий М пишет: Вы сначала объясните — зачем дважды ReDim с одним и тем же nArray?

       

    Код
    'этот ReDim, чтобы показать что на таких же размерах все работает. Он не нужен в программе, просто показываю, что если так указать, то все ок. Его я удалю. Поставил его после обнаружения ошибки. На нем ошибки нет
       ReDim nArray(1 To 1500000, 1 To 15) As Variant
        
    'это основной ReDim, он будет и дальше. Он динамически расширяет массив в зависимост от размеров данных на листе, которые туда будут помещаться. 
           ReDim nArray(1 To LastRow, 1 To LastCol) As Variant
    

    Первый — для примера. На нем не вылезает ошибка.
    А вот на втором — вылезает, даже если первый закомментен. Может быть это поможет локализовать проблему.

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #19

    01.02.2013 19:44:42

    Цитата
    axtrace пишет:
    Он динамически расширяет массив в зависимост от размеров данных на листе, которые туда будут помещаться.

    Так и объявляйте сразу динамический массив (см. мой пост выше) — и ReDim’мить не придётся.

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #20

    01.02.2013 19:45:30

    Цитата
    axtrace пишет: этот ReDim, чтобы показать что на таких же размерах все работает.

    Неправда — совсем разные размеры.

     

    axtrace

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

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

    #21

    01.02.2013 19:47:50

    Цитата
    Юрий М пишет:
    Dim nArray()
    nArray = Range(Cells(1, 1), Cells(lastrow, lastcolumn)).Value

    то есть просто убрать ReDim? Я так сделал, у меня в массив записалось <Out of memory>, программа благополучно продолжила работать, но вылезла ошибка о несуществовании объекта в дальнейшем, при попытке перенести данные из этого массива в другой

     

    axtrace

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

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

    #22

    01.02.2013 19:50:52

    Цитата
    Юрий М пишет: Неправда — совсем разные размеры.

    я опечатался, вместо 1 500 000 указал 150 000. В файле уже исправил, все равно этот ReDim берет, на втором — ошибка

     

    Юрий М

    Модератор

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

    Контакты см. в профиле

    #23

    01.02.2013 19:58:48

    Цитата
    axtrace пишет: то есть просто убрать ReDim?

    Объявите массив, как указано, и присвойте ему значения из диапазона листа — никакой ошибки быть не должно. Не «просто убрать RedIm», а записать: массив = …

     

    axtrace

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

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

    #24

    01.02.2013 19:59:17

    Цитата
    ikki пишет: но если я меняю константу m на 600000 — то уже при создании 3-го массива вылетает out of memory

    может быть это ограничение разметки памяти в vba?

     

    The_Prist

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

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

    Профессиональная разработка приложений для MS Office

    Я полагаю проблема в том, что массив передается в процедуру ссылкой. А в этом случае память не высвобождается — VBA считает, что мы вроде как далее будем использовать переменную. И при повторном обращении с передачей ссылки у нас выделенный размер памяти может «слегка» увеличиватся.
    В общем попробуйте объявить массив глобально и в процедуре просто переназначать ему значения.

    Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

     

    Михаил С.

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

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

    #26

    01.02.2013 21:52:01

    А мне кажется, дело в простой нехватке физической памяти. Например, такой массив

    Код
    Sub test()
    ReDim a(1000000, 30) As Byte
    End Sub

    на моем компе (win7, off 2010, 2 G) срабатывает, а такой

    Код
    Sub test()
    ReDim a(1000000, 30) 
    End Sub

    —  «RunTime Error 7 — Out of Memory»

     

    axtrace

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

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

    #27

    01.02.2013 22:00:03

    Цитата
    The_Prist пишет: И при повторном обращении с передачей ссылки у нас выделенный размер памяти может «слегка» увеличиватся

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

     

    axtrace

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

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

    #28

    01.02.2013 22:01:35

    Цитата
    Михаил С. пишет:  моем компе (win7, off 2010, 2 G)

    странно. у меня win7, off2010, 4Gb
    файл подкачки — 3,6 Gb

     

    axtrace

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

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

    попробую я, в общем, делать кусками. Брать массив тысяч в 100 строк, преобразовывать его, записывать на новый лист, переходить к следующим 100 тыс. строк… Время, конечно, увеличится. Но хоть какое-то решение у меня будет.

    все большое спасибо за идеи! Надеюсь, вам пригодится где-нибудь когда-нибудь :)

     

    SvetaS_love

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

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

    #30

    14.07.2015 20:39:10

    Добрый День!
    Помогите пожалуйста. У меня тоже эта  проблема но Excel 2016 ошибку тоже даёт Redim
    на  111 533 строках и 1635 столбцах

    Код
    Dim text_word2() As Variant
    x=1635
     ReDim text_word2(0 To kki, 0 To x)

    Как решили прошлую проблему?

    одинокий странник

    RunTime Error 7 — Out of Memory  на ReDim массива VBA Excel 64

    Добрый день! 

    Проблема в следующем: все данные с листа помещаю в массив, чтобы их быстрее обработать. На малых объемах все работает хорошо. На больших, близких к граничным, вылезает ошибка «RunTime Error 7 — Out of Memory». 

    Она вылезает или на ReDim массива, или на присвоении массиву диапазона с листа. 

    ПАМЯТИ 8 ГБ, Excel 64 РАЗРЯДНЫЙ, ОПЕРАЦИОНКА 64 РАЗРЯДНАЯ,Excel 2016
    ошибку даёт Redim на 111 533 строках и 1635 столбцах 

    на объёме маленьком ошибку не даёт (до 100 строк и до 100 столбцов) — работает нормально……

    Если ошибку отлавливать 

    On Error Resume Next
    If Err.Number <> 0 Then
    Err.Clear
    End If

    — то Excel виснит и  уходит в бесконечный цикл, постоянно увеличивая  занимаемую память. 

    код 
    Dim text_word2() As Variant
    x=1635
    ReDim text_word2(0 To kki, 0 To x)- место ошибки

    полный код:

    Private Sub CommandButton3_Click()
    Dim n As Long
    Dim nn As Long
    Dim find As String
    Dim kki, kkj As Integer
    
    Dim k, kk, ii, i, j, jj, l, ll, jjj, i1, i2, kkk, j1, j2, j3, i3, jj3, eqmax As Long
    Dim ii_find, jj_find, ii_text, jj_text As Long
    Dim Txt, txt2, txt_p, txt_col, txt_row, txt_out As String
    
    
         Dim Rng_find As Range
         Dim Rng_text As Range
         Dim Rng_substitution As Range
         Dim Rng_out As Range
         Dim theRange_out As Range
         Dim Delimiter As String
    
        Dim Find_word() As String
        Dim Find_word2() As String
        Dim text_word1() As String
        Dim text_word2() As Variant
    
        On Error Resume Next
        Set Rng_find = Range(RefEdit1.Value)
    
        Set Rng_text = Range(RefEdit2.Value)
        Set Rng_substitution = Range(RefEdit3.Value)
        Set Rng_out = Range(RefEdit4.Value)
        Delimiter = Me.TextBox1
            
        On Error GoTo 0
         
        
        If Rng_find Is Nothing Then
            MsgBox "вы не выбрали диапазон какие данные ищем"
            Err.Clear
        Else
        If Rng_text Is Nothing Then
            MsgBox "вы не выбрали диапазон в котором ищем данные "
            Err.Clear
        Else
        
          If Rng_out Is Nothing Then
             MsgBox "вы не выбрали диапазон куда выводить данные"
             Err.Clear
          Else
        
        Application.ScreenUpdating = False
        
        
          
        If myWord(Rng_text).imyRows > myWord(Rng_text).imyColumns Then 'если строк больше чем столбцов в тексте в котором ищем
        
       'раскладываем по словам искомый диапазон
        ii_find = myWord(Rng_find).imyRows
        jj_find = myWord(Rng_find).imyColumns
        
        
        ReDim Find_word(1 To ii_find, 0 To jj_find) ' 0-вой столбец фраза целиком
        Find_word = myWord(Rng_find).iFindword
        
         ' переводим в массив 2-ух строк
         ' 0 строка фраза целиком
         ' 1 строка разложение по словам
        ReDim Find_word2(0 To 2, 0 To (jj_find * ii_find))  '
        jjj = 1
       For i = 1 To ii_find
         For j = 1 To jj_find
           If ((Find_word(i, j) <> "") And (Find_word(i, j) <> " ") And (Find_word(i, j) <> Empty) And (Len(Find_word(i, j)) > 2)) Then
              Find_word2(0, jjj) = Find_word(i, 0)
              Find_word2(1, jjj) = Find_word(i, j)
              jjj = jjj + 1
           End If
         Next j
       Next i
      
        'раскладываем по словам  диапазон в котором ищем
        ii_text = myWord(Rng_text).imyRows
        jj_text = myWord(Rng_text).imyColumns
        ReDim text_word1(1 To ii_text, 0 To jj_text) ' 0-вой столбец фраза целиком
        text_word1 = myWord(Rng_text).iFindword
    '______________
    
    'определение % совпадения каждого слова в строке в масиве  text_word2(i, j)
    kkj = jj_text + jjj + 2
    kki = ii_text + 2
    ReDim text_word2(0 To kki, 0 To kkj)
    On Error Resume Next
    If Err.Number <> 0 Then
    Err.Clear
    End If
    
    
       '-составляем массив в котором будем сопоставлять
    
        For j = 0 To jj_text
             i2 = 3
            For i = 1 To (ii_text) 'заполнение массива
             
             text_word2(0, j) = "где ищем"
             
             text_word2(i2, j) = text_word1(i, j)
             i2 = i2 + 1
            Next i
          Next j
    ' первая строка - группы- искомые слова исходном виде- строка 0
    ' вторая строка - группы- искомые слова в разложенном виде - строка 1
       For i = 1 To 2 'заполнение массива
         kkk = jj_text + 1
          For jj = 1 To jjj
              text_word2(0, kkk) = "что ищем"
              text_word2(i, kkk) = Find_word2((i - 1), jj)
              kkk = kkk + 1
             Next jj
     
        Next i
      
      For i = 3 To i2 - 1 'получаем % совпадения искомых слов
      
           For jj = (jj_text + 1) To kkk
           eqmax = 0
             For jj3 = 1 To jj_text
              If text_word2(i, jj3) <> Empty Then
                 If Equality(CStr(text_word2(i, jj3)), CStr(text_word2(2, jj))) > eqmax Then
                    text_word2(i, jj) = CDbl(CDbl(Equality(CStr(text_word2(i, jj3)), CStr(text_word2(2, jj))) / Len(CStr(text_word2(2, jj)))))
                    
                    eqmax = Equality(CStr(text_word2(i, jj3)), (CStr(text_word2(2, jj))))
                 End If
                  If eqmax < 3 Then text_word2(i, jj) = ""
              End If
             Next jj3
            Next jj
         Next i
     
        
     
      ElseIf myWord(Rng_text).imyRows < myWord(Rng_text).imyColumns Then 'если столбцов больше чем строк в тексте в котором ищем
      
      Else
      
      
      End If
      
      
      'динамический расчёт вставляемого массива от заданной ячейки полбзователем
     
     txt_p = Substring(RefEdit4.Text, "!", 1)
     txt_col = Substring(Substring(RefEdit4.Text, "!", 2), "$", 2)
     txt2 = Substring(Substring(RefEdit4.Text, "!", 2), "$", 3)
     txt_row = Substring(txt2, ":", 1)
    
     i = jj_text + jjj + 2 + Int(Columns(txt_col).Column)
     
     txt_out = txt_col & txt_row & ":" & Trim(Substring(Cells(1, i).Address, "$", 2)) & Trim(Str((ii_text + 2) + Int(txt_row)))
    
    'вставка итогового массива
          ActiveWorkbook.ActiveSheet.Range(txt_out).Clear
           Set theRange_out = ActiveWorkbook.ActiveSheet.Range(txt_out)
             theRange_out = text_word2
          
               
          End If
        End If
      End If
    

          

    ВОПРОС БЫЛ КАК ОБОЙТИ Redim ? ИЛИ КАК ОТЛОВИТЬ ОШИБКУ «RunTime Error 7 — Out of Memory «…

    ТУТ ГЛЮК САМОГО VBA EXCEL В Redim на больших объёмах….

    ПОМОГИТЕ ПОЖАЛУЙСТА.
    ЗАРАНЕЕ СПАСИБО.

    this might be on here somewhere and I missed it, just let me know.

    After running my macro, I get Run-time Error 7 Out of Memory. After debugging, it’s on this line:

    cell.Offset(0, 6).Value = Sheets("MakeRing_Maths").Range("N1").Value
    

    The code is meant to run down a list of airports with longitudes and latitudes, create line segments that will be interpreted as circles, and convert to .KML (which is read by Google Earth Pro).

    Here is the rest of the code — how can I clean something like this up to avoid memory leaks??

    All answers appreciated, or pointers to other posts. I know this is a lot, so general suggestions are also welcome! Thank you!

    Sub PLANEMAN_Coords()
    
    Dim Latitude As Double
    Dim Longitude As Double
    Dim Bearing As Integer
    Dim LeftRight As Integer
    Dim RangeKM As Double
    Dim MinRange As Double
    
    For Each cell In [RangeRings_ENTER!B9:B5001]
    
        If cell.Value = "" Then
            GoTo EXITLOOP
        Else
        End If
    
        Latitude = cell.Offset(0, 1)
        Longitude = cell.Value
    
        'set default values:
    
        'line width
        If cell.Offset(0, 2).Text = "" Then
            cell.Offset(0, 2).Value = 2
            'default line width = 2
        Else
        End If
    
        'radius
        If cell.Offset(0, 5).Text = "" Then
           cell.Offset(0, 5).Value = 8.04672
            'default radius = 8.04672 km = 5 miles
        Else
        End If
        RangeKM = cell.Offset(0, 5)
    
        'line color
        If cell.Offset(0, 3).Text = "" Then
            cell.Offset(0, 3).Value = "ff0000ff"
            'default line color is Red
        Else
        End If
    
        'common code
        Sheets("MakeRing_Maths").Range("D3").Value = Longitude
        Sheets("MakeRing_Maths").Range("E3").Value = Latitude
        Sheets("MakeRing_Maths").Range("D1").Value = RangeKM
    
        'code that differs depending on range-ring type
        If cell.Offset(0, 7).Text = "Circle" Then
            Sheets("MakeRing_Maths").Range("J1").Value = 0 'Bearing
            Sheets("MakeRing_Maths").Range("J2").Value = 180 'width - ie 2 x 180 = 360 = complete circle
            Calculate
            cell.Offset(0, 6).Select 'just so that the user can 'see' that the macro is still running and not crashed
            cell.Offset(0, 6).Value = Sheets("MakeRing_Maths").Range("N1").Value
        Else
            'else wedge of some sort
    
            Bearing = cell.Offset(0, 8)
            LeftRight = cell.Offset(0, 9)
            MinRange = cell.Offset(0, 10)
    
            Sheets("MakeRing_Maths").Range("J1").Value = Bearing
            Sheets("MakeRing_Maths").Range("J2").Value = LeftRight
    
            If cell.Offset(0, 7).Text = "Wedge" Then
                Calculate
                cell.Offset(0, 6).Select 'just so that the user can 'see' that the macro is still running and not crashed
                cell.Offset(0, 6).Value = Sheets("MakeRing_Maths").Range("N2").Value
            Else 'else a wedge with minimum range component 'Wedge2
                If cell.Offset(0, 7).Text = "Wedge2" Then
                    Sheets("MakeRing_Maths").Range("F1").Value = MinRange
                    Calculate
                    cell.Offset(0, 6).Select 'just so that the user can 'see' that the macro is still running and not crashed
                    cell.Offset(0, 6).Value = Sheets("MakeRing_Maths").Range("N3").Value
                Else
                    If cell.Offset(0, 7).Text = "Arrow" Then
                        Sheets("MakeRing_Maths").Range("F1").Value = RangeKM * 0.95
                        Calculate
                        cell.Offset(0, 6).Select 'just so that the user can 'see' that the macro is still running and not crashed
                        cell.Offset(0, 6).Value = Sheets("MakeRing_Maths").Range("N4").Value
                    Else
                        'HERE
                    End If
                End If
            End If
        End If
    Next
    
    EXITLOOP:
    
    Call PLANEMAN_RangeRings_KML 'make KML file
    
    End Sub
    
    
    
    Sub PLANEMAN_RangeRings_KML()
    ' Original inspiration code by simon_a
    ' Planeman 2009
    
        'get user to specify save location and name
        Dim ThisAddress As String
        ChDir ThisWorkbook.Path
        ThisAddress = Application.GetSaveAsFilename(FileFilter:="KML Files (*.kml),*.kml", Title:="Save Location & Name")
    
        ' file details
        filePath = ThisAddress
        docName = "PLANEMAN.KML"
        FolderName = "Folder"
    
        Open filePath For Output As #1
    
        'Write header to file
        outputText = "<?xml version=""1.0"" encoding=""UTF-8""?> <kml xmlns=""http://www.opengis.net/kml/2.2"" xmlns:gx=""http://www.google.com/kml/ext/2.2"" xmlns:kml=""http://www.opengis.net/kml/2.2"" xmlns:atom=""http://www.w3.org/2005/Atom""> <Document><name>" & docName & "</name>    <Folder>    <name>" & FolderName & "</name>  <open>1</open>"
        Print #1, outputText
    
        'loop
        For Each cell In [RangeRings_ENTER!B9:B5001]
    
            If cell.Value = "" Then
               Exit For
            End If
    
            StrPart1 = "<Style id=""sn_ylw-pushpin""><IconStyle><color>" & cell.Offset(0, 3) & "</color></IconStyle><LineStyle><width>" & cell.Offset(0, 2) & "</width><color>" & cell.Offset(0, 3) & "</color></LineStyle><PolyStyle><color>" & cell.Offset(0, 3) & "</color></PolyStyle></Style>"
            StrPart2 = "<Placemark><name>" & cell.Offset(0, -1) & "</name>  <styleUrl>#sn_ylw-pushpin</styleUrl>    <LineString>    "
            StrPart3 = "<coordinates>" & cell.Offset(0, 6) & ",0 </coordinates> </LineString></Placemark>"
    
            'Create a placemark
            outputText = StrPart1 & StrPart2 & StrPart3
            Print #1, outputText
    
        Next
    
       'Write footer to file
        outputText = "</Folder></Document></kml>"
        Print #1, outputText
    
        Close #1
    
        MsgBox "Macro Complete"
    
    '
    End Sub
    
    Sub PLANEMAN_Placemarks_KML()
    ' Original inspiration code by simon_a
    ' Planeman 2009
    
        'get user to specify save location and name
        Dim ThisAddress As String
        ChDir ThisWorkbook.Path
        ThisAddress = Application.GetSaveAsFilename(FileFilter:="KML Files (*.kml),*.kml", Title:="Save Location & Name")
    
        ' file details
        filePath = ThisAddress
        docName = "PLANEMAN.KML"
        FolderName = "PlacemarkFolder"
    
        Open filePath For Output As #1
    
        'Write header to file
        outputText = "<?xml version=""1.0"" encoding=""UTF-8""?><kml xmlns=""http://www.opengis.net/kml/2.2""> <Document><name>" & docName & "</name>    <Folder>    <name>" & FolderName & "</name>  <open>1</open>"
        Print #1, outputText
    
        'loop
        For Each cell In [Placemarks_ENTER!B9:B5001]
    
            If cell.Value = "" Then
               Exit For
            End If
    
            StrPart1 = ""
            StrPart2 = " <Placemark> <name> " & cell.Offset(0, -1) & " </name> "
            StrPart3 = cell.Offset(0, 6) & "<Point><coordinates> " & cell.Offset(0, 0) & "," & cell.Offset(0, 1) & ",0</coordinates> </Point> </Placemark>"
    
            'Create a placemark
            outputText = StrPart1 & StrPart2 & StrPart3
            Print #1, outputText
    
        Next
    
       'Write footer to file
        outputText = "</Folder></Document></kml>"
        Print #1, outputText
    
        Close #1
    
        MsgBox "Macro Complete"
    
    '
    End Sub
    

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

    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Run-time error ‘7’ : Out of memory

    Подскажите что делать с этой проблемой:

    Уже не первая моя программа выдаёт при запуске

    «Run-time error ‘7’ : Out of memory»

    Т.е. у моего друга (по его словам) одна из моих программ при загрузке давала эту ошибку.Но это было уже давно (4-5месяцев назад)!

    У него стоял МИЛЕНИУМ и я погрешил на систему и не придал этому значения , да и у других людей которые пользовались моей програмой небыло ни каких проблем. На этом я успокоился…

    Но вот полторы недели назад я закончил очень важный для меня проэкт. Он находился (перед публикацией) на двухнедельном тэстировании. Ни у кого из тэстеров небыло никаких проблем , и тут вчера (04.04.04) я запускаю программу (как обычно) и… получаю —

    «Run-time error ‘7’ : Out of memory»

    Ладно, думаю, сейчас запущу ‘VB’ и проверю в чем проблема.

    Запускается ‘VB’ и «говорит» мне:

    -MsgBox Caption «VBDataViewWindow»

    и ниже:

    «Out of memory. Continue? »

    Y/N

    Т.е. по логике в моём коде нет проблем , проблема с ‘VB’ в системе.

    У других ребят программа работает без проблем.

    Комп. : P4-(Intel1.8-Asus266), RAM-256 HD8Mb-120G Win.XP

    т.е. проблем со скоростью и памятью не должно быть …

    Комп перегружал всё равно ошибка ……….

    Установлен пакет «Microsoft Visual Studio 6.0».

    Может что-то произошло с «msvbvm60.dll» Я идиот! Убейте меня, кто-нибудь!………

    Помогите , очень Вас прошу!!!

    Пишите сюда или

    zafon@nm.ru

    Зарание блогодарен за любые высказывания .

    С ув. «ViC» !!!


    Kostyan
    Постоялец
    Постоялец
     
    Сообщения: 439
    Зарегистрирован: 20.09.2002 (Пт) 4:14
    Откуда: Россия, Уссурийск
    • ICQ

    Сообщение Kostyan » 06.04.2004 (Вт) 0:15

    Я при подобных подозрениях на VB удалил бы его подчистую и установил заново.

    Нет ничего невозможного для человека с интеллектом.


    Cyrax
    Cyberninja
    Cyberninja
    Аватара пользователя

     
    Сообщения: 891
    Зарегистрирован: 25.04.2002 (Чт) 21:20
    Откуда: Magnitogorsk, Russia
    • Сайт
    • ICQ

    Сообщение Cyrax » 06.04.2004 (Вт) 9:53

    а я бы, для начала, на код взглянул…

    да и все остальные, наверное, тоже не отказались бы от этого :)

    Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно… (озадаченно) А это в какую сторону тянуть? Ну-ка… Ага, этот был лишний, этот вообще не отсюда, и этот… Точно, два болта.

    Welcome to IRC


    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Сообщение zafon » 06.04.2004 (Вт) 11:13

    Да,конечно удалить ‘VB’ , а затем переустановить не проблема.

    Это логично.

    Но ведь нужно знать причину — почему это случилось.

    Клиент не может удалить ‘VB’ с ситемы а затем переустановить.

    (Что подразумеватся удалить ‘VB’ с ситемы клиента — это разрегистрация всех библиотек и контролов , а затем их удаление.)

    Повторная переустановка моей программы не помогает…

    (Т.е. Uninstall -> Install )

    Есть проблема с ‘VB’ в системе.

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

    Замена и перерегистрация в системе msvbvm60.dll не устраняет проблему…

    Тэстеры говорят что программа работает без сбоев — КОД «чистый» .

    Только у меня есть эта проблема…


    hCORe
    VB — Экстремал
    VB - Экстремал
    Аватара пользователя

     
    Сообщения: 2332
    Зарегистрирован: 22.02.2003 (Сб) 15:21
    Откуда: parent directory
    • Сайт
    • ICQ

    Сообщение hCORe » 06.04.2004 (Вт) 11:20

    http://amelso.narod.ru/gluk.htm писал(а):Run-time error ‘6’: Out of memory

    Причина ошибки: программе не хватает виртуальной памяти для инициализации или при выполнении каких-либо операций.

    Устранение ошибки: Увеличить размер файла подкачки на жестком диске. См. Пуск—Панель управления—Производительность и обслуживание—Система—Дополнительно—Параметры быстродействия в Windows 2000 и XP и Пуск—Настройка—Панель управления—Система—Дополнительно—Виртуальная память для Windows 9x/ME. После этого перезагрузить компьютер для снятия проблемы.

    Моду создают модоки, а распространяют модозвоны.


    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Сообщение zafon » 06.04.2004 (Вт) 12:23


    hCORe
    VB — Экстремал
    VB - Экстремал
    Аватара пользователя

     
    Сообщения: 2332
    Зарегистрирован: 22.02.2003 (Сб) 15:21
    Откуда: parent directory
    • Сайт
    • ICQ

    Сообщение hCORe » 06.04.2004 (Вт) 12:25

    Переустанови VB, не поможет — снеси ко всем чертям систему и поставь заново :roll:

    Моду создают модоки, а распространяют модозвоны.


    Cyrax
    Cyberninja
    Cyberninja
    Аватара пользователя

     
    Сообщения: 891
    Зарегистрирован: 25.04.2002 (Чт) 21:20
    Откуда: Magnitogorsk, Russia
    • Сайт
    • ICQ

    Сообщение Cyrax » 06.04.2004 (Вт) 12:40

    hCORe писал(а):снеси ко всем чертям систему и поставь заново :roll:

    боюсь, и это не поможет…

    Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно… (озадаченно) А это в какую сторону тянуть? Ну-ка… Ага, этот был лишний, этот вообще не отсюда, и этот… Точно, два болта.

    Welcome to IRC


    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Сообщение zafon » 06.04.2004 (Вт) 13:47

    Это выглядит так.

    _____________________________________________________________

    Опять же говорю: снести , переустановить,поломать ,скрушить и т.д. (незная в что привело к ошибке) — это не проблема.

    Да и программа (без изминений кода) проработала полторы недели без ошибок.

    Просто хочется сделать так что бы пользователь , у которого возникла такая проблема , мог с помощью повторной переустановки моей программы — ИСПРАВИТЬ ЭТУ ОШИБКУ , а не удалять систему и заново её переустанавливать , только для того чтобы пользоваться

    программой .

    Да и делая выводы из «скриншотов» , я думаю что это может возникнуть у любого из нас кто пишет на VB .


    Cyrax
    Cyberninja
    Cyberninja
    Аватара пользователя

     
    Сообщения: 891
    Зарегистрирован: 25.04.2002 (Чт) 21:20
    Откуда: Magnitogorsk, Russia
    • Сайт
    • ICQ

    Сообщение Cyrax » 06.04.2004 (Вт) 13:52

    а что такое «VBDataViewWindow»?

    Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно… (озадаченно) А это в какую сторону тянуть? Ну-ка… Ага, этот был лишний, этот вообще не отсюда, и этот… Точно, два болта.

    Welcome to IRC


    alibek
    Большой Человек
    Большой Человек
     
    Сообщения: 14205
    Зарегистрирован: 19.04.2002 (Пт) 11:40
    Откуда: Russia

    Сообщение alibek » 06.04.2004 (Вт) 13:54

    Имеется ли в проекте Coolbar (из Microsoft Common Controls-3)? Просто он себя в некоторых случаях нехорошо ведет и рушит IDE.

    Да, и еще. После того, как VB загрузиться, зайди в Add-Ins-=менеджер и поотключай все плугины.

    Lasciate ogni speranza, voi ch’entrate.


    hCORe
    VB — Экстремал
    VB - Экстремал
    Аватара пользователя

     
    Сообщения: 2332
    Зарегистрирован: 22.02.2003 (Сб) 15:21
    Откуда: parent directory
    • Сайт
    • ICQ

    Сообщение hCORe » 06.04.2004 (Вт) 14:14

    VBDataViewWindow — это малополезное окошко просмотра соединений с БД. Оно иногда глючит по-страшному :oops: В поставке с VB есть DLL dataview.dll, попробуй ее переименовать и все встанет на свои места :!:

    Моду создают модоки, а распространяют модозвоны.


    Ennor
    Конструктивный критик
    Конструктивный критик
     
    Сообщения: 2504
    Зарегистрирован: 18.12.2001 (Вт) 3:58
    Откуда: Калуга -> Москва
    • ICQ

    Сообщение Ennor » 06.04.2004 (Вт) 14:16

    Насчет кулбара — это верно, но он все-таки не так зверствует, только если его пытаются внутри собственного контрола использовать (сам попадался…). А вообще очень похоже на запуск среды под аккаунтом с _очень_ ограниченными правами (типа Guest). Либо, если это не так, начинай тщательно тестить все железо. Да, надеюсь, пятый сервис-пак на студию у тебя стоит…

    А почему слетело? Да миллион причин. Реестр накрылся, NTOSKRNL.EXE перекочевряжило, да что угодно.


    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Сообщение zafon » 06.04.2004 (Вт) 14:23

    alibek писал(а):Имеется ли в проекте Coolbar (из Microsoft Common Controls-3)? Просто он себя в некоторых случаях нехорошо ведет и рушит IDE.

    Да, и еще. После того, как VB загрузиться, зайди в Add-Ins-=менеджер и поотключай все плугины.

    Add-Ins — всё отключено .

    На счёт «Microsoft Common Controls-3» моё приложение использует:

    — MSCOMCT2.OCX

    — MSCOMCTL.OCX

    — shdocvw.dll

    — comdlg32.ocx

    Да и если VB «ругается» то моя программа не причём… Что-то с библиотеками VB или реестр…

    ___________________________________________________________

    Cyrax-

    VBDataViewWindow — без понятия , но его *.dll файлы находятся в папке VB .

    ___________________________________________________________

    Странно это всё ???…


    hCORe
    VB — Экстремал
    VB - Экстремал
    Аватара пользователя

     
    Сообщения: 2332
    Зарегистрирован: 22.02.2003 (Сб) 15:21
    Откуда: parent directory
    • Сайт
    • ICQ

    Сообщение hCORe » 06.04.2004 (Вт) 14:25

    Ennor писал(а):NTOSKRNL.EXE перекочевряжило

    Да нет, скорее NTLDR кто-то переименовал или удалил :twisted:

    Моду создают модоки, а распространяют модозвоны.


    zafon
    Новичок
    Новичок
     
    Сообщения: 29
    Зарегистрирован: 04.07.2003 (Пт) 4:48
    Откуда: AKKO,Israel

    Сообщение zafon » 06.04.2004 (Вт) 17:06


    Amed
    Алфизик
    Алфизик
     
    Сообщения: 5346
    Зарегистрирован: 09.03.2003 (Вс) 9:26
    • ICQ

    Сообщение Amed » 06.04.2004 (Вт) 20:28

    Точно. Как-то делал программу на конкурс (конференцию), и за 2 дня до сдачи она у меня начала выдавать «Out of memory». Перепугался я страшно, но, кажется, дело было в собственных контролах, случайно изменив которые, я восстановил работоспособность… А то точно была бы «Catastrophic failure» :wink:


    codemaster
    Постоялец
    Постоялец
    Аватара пользователя

     
    Сообщения: 604
    Зарегистрирован: 13.02.2004 (Пт) 13:35

    Сообщение codemaster » 07.04.2004 (Ср) 14:36

    zafon писал(а):

    alibek писал(а):Да и если VB «ругается» то моя программа не причём… Что-то с библиотеками VB или реестр…
    Странно это всё ???…

    Есть ли в твоей проге UserControls ?



    Вернуться в Visual Basic 1–6

    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    Понравилась статья? Поделить с друзьями:
  • Как найти море тв на телевизоре самсунг
  • Как найти файлы excel с макросами
  • Как найти судебный участок по фамилии судьи
  • Как найти подключенный сканер
  • Как исправить куртку пуховик после стирки если наполнитель скатался