Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
Проблема с Excel 97 если я выполняю дважды этот код,т.е. если в Excel который я создал добавляю WorkBook, а потом закрываю одну книгу он спрашивает типа сохранить я нажимаю нет и Excel с оставшейся рабочей книгой закрывается при этом остается висеть в памяти Dim ExApp As Excel.Application Dim ExWrb As Excel.Workbook Dim ExWsh As Excel.Worksheet Dim hwnd As Long On Error Resume Next Set ExApp = GetObject(, "Excel.Application") ' Пытаемся получить первый уже существующий объект приложение Excel If Err.Number <> 0 Then Err.Clear Set ExApp = CreateObject("Excel.Application") End If hwnd = FindWindow("XLMAIN", 0) If hwnd <> 0 Then ' 0 means Excel not running. SetWindowPos hwnd, 0, -15000, 0, 0, 0, SWP_NOSIZE + SWP_NOZORDER End If If ExApp Is Nothing Then Err.Raise 10001, , "Ошибка при создании объекта Excel" Set ExWrb = ExApp.Workbooks.Add Set ExWsh = ExWrb.Sheets.Item(1) ExWsh.Name = "Выборка " ExWsh.Range("A1:B1").Value = "Тест" ExApp.Visible = True SetWindowPos hwnd, HWND_TOP, 0, 0, 0, 0, SWP_SHOWWINDOW + SWP_NOSIZE Set ExWrb = Nothing Set ExWsh = Nothing Set ExApp = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 11:14 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
ExApp.Quit просто ссылку обнулить не достаточно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 11:34 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
Мне не нужно его программно закрывать, надо его показать пользователю и если он делает еще раз экспорт то использоваться должен тот же Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 11:37 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
попробывал из Access это вызвать, так у меня вообще при первом открытии закрытии General Protection Fault ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 23:19 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
Если сделать Set ExApp = CreateObject("Excel.Application") ExApp.Visible = True те сразу за созданием показать приложение, тогда все работает. Под этот опытный факт можно построить теорию, что Excel по-разному работает с памятью в режиме Visible=true и Visible=false. Это кстати подтверждается и другим простым опытом. Заполнить МНОГО ячеек в Excel пособом типа Cells(i, j)=Value в режиме Visible=false не получится, он просто зависнет, а если Visible=true, то можно заполнить хоть весь лист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2004, 23:41 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
вранье какое-то. Нормально всегда заполнял, и никакой х.ни не было. Надо только сразу опредилить объект(ы) (страницу) в которую пихаете, а не пользоваться по дурости АктивШитом (или АктивВиндоу), как это предлагает рекордер макросов ёкселя. (и адресацию переделать). И не забыть показать результат юзеру, ес-сно (или сохранить, квайтнуться и выйти). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 10:37 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
ТО вранье какое-то Тебе описали ситуацию в которой происходит ошибка.Если в каком то месте код не правильно написан укажи на это место.А то прогнал пургу какую то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 11:48 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
to вранье какое-то Ну и где-же в приведенном коде ActiveSheet ? to Вопрос Помогла ли перестановка строки Visible=true? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 12:20 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
Если вот так пишешь не работает Dim ExApp As Excel.Application Dim ExWrb As Excel.Workbook Dim ExWsh As Excel.Worksheet On Error Resume Next Set ExApp = GetObject(, "Excel.Application") If Err.Number <> 0 Then Err.Clear Set ExApp = CreateObject("Excel.Application") End If If ExApp Is Nothing Then Err.Raise 10001, , "Ошибка при создании объекта Excel" ExApp.Visible = False Set ExWrb = ExApp.Workbooks.Add Set ExWsh = ExWrb.Sheets.Item(1) ExWsh.Name = "Выборка " ExWsh.Range("A1:B1").Value = "Тест" ExApp.Visible = True Set ExWrb = Nothing Set ExWsh = Nothing Set ExApp = Nothing Если ExApp.Visible = False ставишь после Set ExWrb = ExApp.Workbooks.Add То работает Dim ExApp As Excel.Application Dim ExWrb As Excel.Workbook Dim ExWsh As Excel.Worksheet On Error Resume Next Set ExApp = GetObject(, "Excel.Application") If Err.Number <> 0 Then Err.Clear Set ExApp = CreateObject("Excel.Application") End If If ExApp Is Nothing Then Err.Raise 10001, , "Ошибка при создании объекта Excel" Set ExWrb = ExApp.Workbooks.Add ExApp.Visible = False Set ExWsh = ExWrb.Sheets.Item(1) ExWsh.Name = "Выборка " ExWsh.Range("A1:B1").Value = "Тест" ExApp.Visible = True Set ExWrb = Nothing Set ExWsh = Nothing Set ExApp = Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 13:05 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
ExApp.Visible = true сразу после создания объекта! Только потом надо добавлять Workbook и тд! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 13:12 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
abuyz! Djn nfr hf,jnftn\r ________________\r Public Sub xladd()\r Dim ExApp As Excel.Application\r Dim ExWrb As Excel.Workbook\r Dim ExWsh As Excel.Worksheet\r \r On Error Resume Next\r Set ExApp = GetObject(, "Excel.Application")\r If Err.Number <> 0 Then\r Err.Clear\r Set ExApp = CreateObject("Excel.Application")\r End If\r If ExApp Is Nothing Then Err.Raise 10001, , "Ошибка при создании объекта Excel"\r ExApp.Visible = False\r Set ExWrb = ExApp.Workbooks.Add\r Set ExWsh = ExWrb.Sheets.Item(1)\r ExWsh.Name = "Выборка "\r \'ExWsh.Range("A1:B1").Value = "Тест"\r ExWsh.Range(ExWsh.Cells(1, 1), ExWsh.Cells(1, 1)).Formula = "Тест"\r ExApp.Visible = True\r \r \r Set ExWsh = Nothing\r ExWrb.Close False\r Set ExWrb = Nothing\r \'ExApp.Quit\r Set ExApp = Nothing\r \r \r End Sub\r _____________\r nfrjt dgtxfnktybtб xnj jnkflrjq ybrnj yb [thf pfybvfnmcz e\'t yt evttnю tirby rjnю Bkb dgthdjq hfljcnb jn vfplfz dblbnt, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 16:14 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q319832& Еще, попробуй, сделать обьект глобальным, т.е. получай его при первом запуске и уничтожай только при полном выходе или выгрузке рабочего окна. повторный вызов GetObject, может создать второй инстатнс или скрытый референс. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 16:18 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
to вранье какое-то ничего не понятно, тк не по-русски. У меня нет перекодировщика, если там были русские буквы какая разница между красной и зеленой строками. По-моему - никакой, кроме оформления to Вопрос Не поленился проверить на VB. Все то же. Если Visible=false GPF, если следующая строка после CreateObject() Visible=true, то все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 17:21 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
версия Excel 97 У меня предложение к тем кому не лень и есть возможность это у себя проверить. Проверьте! Может это только у меня так глючит, правда у меня при исправлении все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 17:24 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
А по ссылке (синяя строчка в начале) сходить было лень? А проверить, чем отличается "на практике" проверить было лень? УБИВАТЬ , блииин, ленивцев. Пишу по русски - залезь в отладчик и поймай строчку с ошибкой. Потом подумай, почему она при визиблетру не совсем ашипка, а при визиблефальш савсем ашипка. Если не дотумкаешь, сходи по ссылке, что я тебе кинул (синяя строчка). там в одном из постов подробно разжевано. Да, и исправь (ExWsh.Cells(1, 1), ExWsh.Cells(1, 2)) ______________ ЗЫ. Лови перекодировщик: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 18:33 |
|
||
|
Excel 97
|
|||
|---|---|---|---|
|
#18+
to вранье какое-то Почитал я синий линк. Ну что? Ничего я там не нашел. Что я должен увидеть в отладчике? Не понятно. Разницы в строках не вижу, если она так очевидна прошу указать мне такому непонятливому. Код: plaintext 1. 2. В чем разница? Мне кажется причина непонимания в том, что я не совсем точно описал ситуацию. Еще раз по пунктам 1. Выполняю указанный код, при этом я вообще закомментировал все, кроме Set ExWrb = ExApp.Workbooks.Add 2. После выполнения кода переключаюсь в Excel 3. Нажимаю крестик (кнопку закрытия окна) 4. GPF (General Protection Fault) Если же команду ExApp.Visible = True, поставить не после, а перед Set ExWrb = ExApp.Workbooks.Add, то все работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2004, 20:47 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32414911&tid=2170040]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
89ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 268ms |
| total: | 450ms |

| 0 / 0 |
