Проблема с Excel (Память не может быть "writen")

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
nip
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 28.02.2002 (Чт) 4:52

Проблема с Excel (Память не может быть "writen")

Сообщение nip » 29.03.2004 (Пн) 23:02

Такой вот трабл.
При подсключении к екселевскому файлу, а точнее при отключении от него выдает ошибку: Память не может быть "writen". При этом выдает тока ексель :x прога продолжает работать, сначала думал дело в Офисе (был 2000), поставил XP не помогло. Пропатчил VS (у меня шестая), тот же результат :? чего делать ума не приложу...

Если кто сталкивался, поделитесь рецептом лечения. :P

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.03.2004 (Вт) 8:07

Код в студию. Да и сам файл бы тоже не помешал.

nip
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 28.02.2002 (Чт) 4:52

Сообщение nip » 30.03.2004 (Вт) 11:27

Код: Выделить всё
    Dim xlApp As Excel.Application
    Dim xlWB As Excel.Workbook
    Dim xls As Excel.Worksheet
   
   
    Set xlApp = New Excel.Application
    Set xlWB = xlApp.Workbooks.Open("c:\5.xls")
    Set xls = xlWB.Sheets("Лист1")


...
'Чтение записей (там много всего, но допустим так):
Код: Выделить всё
Me.Grid1.TextMatrix(y, x) = xls.Cells(y, x)

...
Код: Выделить всё
    Set xlWB = Nothing
    Set xls = Nothing
    xlApp.Quit
    Set xlApp = Nothing
Вложения
5.xls.rar
(1.21 Кб) Скачиваний: 40

astoro
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 23.03.2004 (Вт) 10:31

Сообщение astoro » 30.03.2004 (Вт) 15:44

Может, попробовать переставить местами Set xlApp=Nothing и xlApp.Quit?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 30.03.2004 (Вт) 15:57

Круто будет :lol: Вызов метода уже уничтоженного обекта это просто супер :)

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 30.03.2004 (Вт) 16:53

кстати... у меня подобная ошибка довольно часто стала появлятся в последнее время... причем не зависимо от приложений запущенных в данный момент. т.е. это может быть IE, или WinAmp, или тот же Word. при этом с большой долей уверенности могу сказать, что никаких вызовов OLE или COM в данный момент не происходило, во всяком случае санкционированных с моей стороны...
да, вот еще что, сообщение о том что память не может быть writen выдает студийный дебагер (тот, который с Visual C++). это точно. до установки С++ приложения просто завершались крахом, либо появлялось сообщение "Программа 'такая-то' слвершила недопустимую операцию и будет закрыта"
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

nip
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 28.02.2002 (Чт) 4:52

Сообщение nip » 30.03.2004 (Вт) 19:07

astoro писал(а):Может, попробовать переставить местами Set xlApp=Nothing и xlApp.Quit?

Это типа шутка?
2 Cyrax Кстати мне твой тезка (админ знакомый, тоже Сyrax :P) горил что такая фигня появилась после 4-го сервис пака :evil: в w2k и какого-то из обновлений для XP. Майкорософт же отмазывается мол, это все разработчики косячат, ставте обновления...

Я так понимаю, никаких конструктивных предложений не имеется. Тогда на добавку еще два вопросика:

1. Как можно узнать границы заполнонености таблицы (или хотя бы границы печати)
2. Как можно ускорить процесс взаимодействия с XL? (вроде глазу не заметно, а три сотни ячеек он у меня минут 10 - 15 считывал :oops: )

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 31.03.2004 (Ср) 12:34

2 nip

Ни фига. До сих пор руки не доходят до установки sp4. на 3-ем сижу. w2k. эта, б$я, "память не может быть written..." уже настолько задолбала, что скоро нервный тик появится.. причём, ладно бы просто ругалась, так нет - прога вместе с ВБ вылетает.. :-((( И Cyrax правильно подметил насчёт дебагера.. Только, имхо, раньше программа крахом не завершалась, и ВБ что-то вразумительное писал.. И, что самое обидное, знаю из-за чего ошибка выскакивает, но у меня проект такой, что периодически стопить приходиться, и закрывать принудительно, при этом не выполняется form_unload и одно устройство не shutup'ится. а работу с ним надо корректно завершать. и почему ВБ нормально ругнуться не может, а вылетает на фиг, - непонятно..

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 31.03.2004 (Ср) 12:55

При работе с любыми COM-овскими компонентами в VB6 у меня постоянно была такая фигня. Из VB.NET вызов шел, что называется, "тютелька в тютельку". А писал я... приложение для работы с Microsoft Speech API 4.0 через Automation, программу-говорилку. Пока я не догадался отключить функции с обратным вызовом (callback-и) так и висела ошибка при записи текста в файл :oops:
Сначала просто прога вылетала при выходе из программы, а потом пошли ошибки при работе и (!) перезагрузке системы:
Код: Выделить всё
Память не может быть "written" (записана) по адресу <хрен его знает>. Доступ запрещен. Для закрытия приложения пошлите его к чертовой матери...
Моду создают модоки, а распространяют модозвоны.

nip
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 28.02.2002 (Чт) 4:52

Сообщение nip » 31.03.2004 (Ср) 15:16

Я говорю на форуме где-то уже на эту тему писали, там была линка на пагу майкрософт, где описана трабла и методы борьбы с ней...


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

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

Сейчас этот форум просматривают: Google-бот и гости: 12

    TopList