Страницы: 1
RSS
VBA: недостаточно памяти или ресурсов
 
Всем привет.

Столкнулся с такой проблемой:
при запуске макроса на 32 битном офисе в excel выскакивает ошибка "Недостаточно памяти или ресурсов...". Каким образом, можно очистить оперативную память? сразу скажу, что переход на 64-битный офис невозможен: 32битный офис позволяет подрубаться к sql, но переход на 64битный офис не позволяет по той же строке подключения подрубиться к sql. да и много макросов нужно будет переписать, чтобы работать на 64 битном офисе. поэтому вариант только один: задать программно очистку памяти.

Спасибо. Очень жду помощи!
 
Не по теме: довольно много моих макросов, написанных на моей машине (32), работают на 64. И никто не жаловался. Но я понял - 64 нет возможности поставить.
По теме: Вы бы хоть макрос (лучше с файлом) показали.
 
Цитата
Nikita1994 написал: вариант только один: задать программно очистку памяти.
Вариантов может быть больше.
Наиболее вероятный - макрос неоптимально работает, жрет (не потребляет или использует - жрет) много чего лишнего
 
Цитата
Nikita1994 написал: Каким образом, можно очистить оперативную память?
- видимо удалить исходные данне и не позволить им грузится :-)

Цитата
сразу скажу, что переход на 64-битный офис невозможен: 32битный офис позволяет подрубаться к sql, но переход на 64битный офис не позволяет по той же строке подключения подрубиться к sql.
ой ли!

Цитата
да и много макросов нужно будет переписать, чтобы работать на 64 битном офисе
только те, что используют API

Цитата
задать программно очистку памяти.
Скорее всего, запрос возвращает объем, который превышает максимально допустимый, для обработки x32 версии. Чистить там нечего.
По вопросам из тем форума, личку не читаю.
 
vikttur, БМВ, ребят, в макросе нет ничего особенного. я бы выложил, но файлик большой. облаками не пользуюсь.

в макросе выгружаются данные через sql. дальше пару строк аля
Код
range("A1").currentregion.copy, range(...).select, range("A1").pastespecial ...

в таком стиле действий много. в итоге на строчке columns("C").insert макрос багается. там 26 тыс строк это не так много. На сишарпе память автоматически чистится. на плюсах ее нужно чистить. но так или иначе там есть для этого команды. Скорее всего есть и на вба.

БМВ, насчет установки 64 битного: если ты когда нибудь работал в компании, то должен понимать, что многие макросы писались другими людьми до твоего прихода и переустановка офиса может привести к новым багам. если просят помощи именно в поиске определенного метода то если знаешь этот метод - напиши его и приложи пример пжл. а писать советы которые никак не помогут не нужно. по делу пжл.

Спасибо за отклик)))
 
Цитата
Nikita1994 написал:
напиши его и приложи пример
Вы про какой пример говорите? ))
Насчёт "ты": Вы знакомы с Михаилом?
 
Цитата
Юрий М написал: ...Вы бы...
Цитата
Nikita1994 написал: ...если ты...
Разница есть?
 
Юрий М, vikttur, я должен спрашивать у вас разрешения как мне обращаться к другим людям? я никого не оскорблял. а способ обращения это мой личный выбор. вас спрашивать я не буду)))
Михаил может не отвечать мне) если его не устраивает мое обращение к нему.  
 
Цитата
Nikita1994 написал:
в таком стиле действий много...
А Вы попробуйте поменять стиль:
Код
range("A1").currentregion.copy range("F1")
 
У Вас в квартире гость должен спрашивать разрешения - можно ли курить в комнате?
Цитата
способ обращения это мой личный выбор.
Конечно. Но если Вас это устраивает, что на этом форуме с незнакомыми общаются на "Вы" - проходите мимо.
 
Nikita1994, у нас на форуме к незнакомым людям принято обращаться на ВЫ. Это понятно?
 
Цитата
Nikita1994 написал:
вас спрашивать я не буду
А спрашивать и не нужно: для этого достаточно быть воспитанным и вежливым человеком.
 
отвечать или нет в темах - тоже Ваш выбор?
 
Цитата
Nikita1994 написал:  то должен понимать,
я никому ничего не должен.

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

Цитата
в макросе нет ничего особенного. я бы выложил, но файлик большой
То есть текст макроса в 300кб не поместится - да, действительно большой.

Какая системы по битности и версия офиса? При определенном сочетании можно получить до 2ГБ памяти используемого Excel или чуть больше даже на x32, но завтра и этого может не хватить, а никакая чистка не предусмотрена.
По вопросам из тем форума, личку не читаю.
 
Цитата
vikttur написал:
Наиболее вероятный - макрос неоптимально работает, жрет (не потребляет или использует - жрет) много чего лишнего
Цитата
Nikita1994 написал:
дальше пару строк аля range("A1").currentregion.copy, range(...).select, range("A1").pastespecial ...в таком стиле действий много. в итоге на строчке columns("C").insert макрос багается.
Недостаточно ресурсов
 
Юрий М, vikttur,   да бросьте вы воспитывать , тут же видно over educated.
По вопросам из тем форума, личку не читаю.
 
RAN, Андрей,
Цитата
в UsedRange попали ВСЕ столбцы.
сильно :-(
По вопросам из тем форума, личку не читаю.
 
Всем большое спасибо за Помощь)
Ничем не помогли) увидел только то, что умничали)
но все равно спасибо за отклик)))  
 
Во как... Ладно, модераторы приставучие, но два человека с советами... Да и Юрий М предложил попробовать изменить строку. В ответ на это у Вас слов не нашлось? Подошло что-либо, не подошло...

Отдохните от форума дней 5.
 
off
vikttur,  Виктор, да 5 дней не испугают молодого и активного. Конечно можно было  просто ответить что нет, не предусмотрено, а мы пытались советовать как не доводить до этой необходимости. Ну если человек не совсем понимает разницы между языками разного уровня, компилятором и интерпретатором, оболочкой в которой работает скрипт и самостоятельной программой, и не хочет прислушиваться к советам, продолжая настаивать на своем, , то не будем разубеждать его в его правоте.
По вопросам из тем форума, личку не читаю.
 
Цитата
OFF: БМВ: over educated
мощно  :D
Изменено: Jack Famous - 17.01.2019 14:21:21
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх