![]() |
|
Модераторы: Akina |
![]()
|
|
| geo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 23.6.2003 Где: Voronezh Репутация: нет Всего: нет |
Есть такая проблема. Уменя есть исходный Эксель файл, ну типа шаблон. Я его открываю и записываю что либо. Потом закрываю. Но после этого в самом Экселе он становитья не видимый. я включил строки (см далее между **!!!**) которые создают видимость рабочей книги, но при этом когда прога работает в фоне (по таймеру) сам по себе открывается Эксел, а это как раз не нужно - в этом то и проблема. (Либо сам по себе открывается Эксель, либо нe видна рабочая книга.) ПОМОГИТЕ !!!
' вот чать кода, обьявление апишек не привожу. Dim appExcel As Excel.Application Dim wbkNew As Excel.Workbook, wksNew As Excel.Worksheet Dim str_new_file As String Dim ExcelWasNotRunning As Boolean Dim str_ar_fn As String On Error Resume Next ' определяем запущен ли Эксель Set appExcel = GetObject(, "Excel.Application") If Err.Number <> 0 Then ExcelWasNotRunning = True Err.Clear ' Clear Err object in case error occurred. On Error GoTo Error_OLEAccessToExcel str_path = "Z:\folder1\" str_filename_tpl = "file1.xls" str_filename_new = "file2.xls" DetectExcel Set wbkNew = GetObject(str_path & str_filename_tpl, "Excel.Sheet") Set wksNew = wbkNew.ActiveSheet Set appExcel = wbkNew.Parent ' .. далее далаем вносим любые данные и изменениЯ wks_New.Range("B2").Value =" Сегодня : " & Now() '--- сохранЯем под другим именем, но ... ' ... перед сохраненим удалЯем старую версию --- ' if file exist On Error Resume Next Kill str_path & str_filename_new On Error GoTo Error_OLEAccessToExcel wbkNew.SaveAs str_path & str_filename_new '' **!!!** если следующие строкi не включить в код то файл не видно wbkNew.Application.WindowState = xlMinimized wbkNew.Application.Visible = True wbkNew.Parent.Windows(str_filename_new).Visible = True '' **!!!** wbkNew.Close SaveChanges:=True If ExcelWasNotRunning = True Then appExcel.Quit End If Set wksNew = Nothing Set wbkNew = Nothing Set appExcel = Nothing Sub DetectExcel() ' Procedure dectects a running Excel and registers it. Const WM_USER = 1024 Dim hWnd As Long ' If Excel is running this API call returns its handle. hWnd = FindWindow("XLMAIN", 0) If hWnd = 0 Then ' 0 means Excel not running. Exit Sub Else ' Excel is running so use the SendMessage API ' function to enter it in the Running Object Table. SendMessage hWnd, WM_USER + 18, 0, 0 End If End Sub |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |