powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как закрыть Excel???
6 сообщений из 31, страница 2 из 2
Как закрыть Excel???
    #32367350
Ander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexJuice - сделал всё в точности, как рекомендовано

Dim xl As Excel.Application
' ========================

Private Sub ....
Set xl = New Excel.Application
xl.Workbooks.Open (nameF)
xl.Worksheets.Select ("Таблица")

'Заполнение ТАБЛИЦЫ
For i = 1 To kol1
For j = 1 To kol2
Range(nomerS).Value = <инфо>
'и т.д. заполняется таблица по колонкам
Next
'и т.д. заполняется таблица по строкам с аналогичным кодом
Next

xl.ActiveWorkbook.Save
xl.Quit
Set xl = Nothing
End Sub

И всё с тем же результатом, как описано выше. Всё из-за этой вонючей Range!
Нет ни одной строчки
Set EXL = CreateObject("Excel.Application") ' запускаем Excel
и никаких упоминаний о CreateObject
(проверено поиском по всему проекту).
И слово <Excel> упоминается только 2 раза - в сточке dim... И set...

ПРИЧЁМ! - всё это выше приведённое, перенесённое в новый проект (вот только что осенило проверить), где "больше нет никто", а только вот это самое, даёт аналогичный результат... Чего бы это означало??? Я то думал, что где-то что-то серьёзно делаю не так, а оказывается, всё, как рекомендовано. Чего ещё нажать-то?
Люди! Помоги-и-и-ите!!!
...
Рейтинг: 0 / 0
Как закрыть Excel???
    #32367650
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое nomerS и как оно соотносится с kol1 & kol2?
(Я не вижу, где здесь задается их значение)
И какого типа эти переменные?
...
Рейтинг: 0 / 0
Как закрыть Excel???
    #32367654
Фотография AlexJuice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторxl.Worksheets.Select ("Таблица")
Я же писАл:
xl.Worksheets("Таблица").Activate

ИМХО в Ёкселе происходит ошибка, которую VB не кажет (On Error есть?)
Цикл по ячейкам можно сделать так:

Код: plaintext
1.
2.
3.
4.
5.
6.
For i =  1  To kol1 
   For j =  1  To kol2 
      Cells(i, j).Value = <инфо> 
'и т.д. заполняется таблица по колонкам 
   Next 
'и т.д. заполняется таблица по строкам с аналогичным кодом 
Next 
...
Рейтинг: 0 / 0
Как закрыть Excel???
    #32371358
kkl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kkl
Гость
IMHO здеся какая-то глюкота с обьектами
те Range создает что-то свое сокровенное, а не работает с xl, который
Dim xl As New Excel.Application

я бы попробовал

Dim ar As Excel.Range
--дальше примерно так
Set ar = что-то про Application...Range("A1:Z1")
--и в конце
set ar.Applicatiom=Nothing

Удачи
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Как закрыть Excel???
    #39927065
alexsun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
за 16 лет никто не ответил ...

Все просто. У меня работает так (Excel закрывается, в диспетчере задач его нет):

Set xlSheet = Nothing
xlApp.Quit
Set xlApp = Nothing

В программе используется Range
...
Рейтинг: 0 / 0
Как закрыть Excel???
    #39927140
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexsun
Все просто
нет, еще проще - автор сам придумал синтаксис работы с Excel и предполагает, что VB его скушает. И On Error Resume Next надо ставить только после того, как весь код отлажен и заранее известно, что все возникающие ошибки не являются ошибками обращений к объектам и исполнений конструкций. Тогда автор бы точно увидел, где рушиться программа и завершает свою работу не дойдя до очистки объектов.
1. Так обращаться нельзя:
Код: vbnet
1.
xl.Worksheets.Select ("Таблица")


правильно
Код: vbnet
1.
xl.Worksheets("Таблица").Select


а еще проще вообще ничего не выделять, ибо это лишнее. Изначально у автора так и было:
Код: vbnet
1.
2.
Set xlb = xl.Workbooks.Open(nameF)
Set xls = xlb.Worksheets.Item("Таблица")


2. VB не знает что такое Range и поэтому надо явно указывать откуда его брать:
Код: vbnet
1.
xlb.Worksheets("Таблица").Range(nomerS).Value = "какое-то значение"


а это мне изначально непонятно:
Код: vbnet
1.
nomerS = "A" & Mid$(Str(kolStrok), 2, Len(Str(kolStrok)) - 1)


что откуда берется и зачем там Mid, особенно учитывая тот факт, что kolStrok явно числовая переменная, т.к. она используется как счетчик.
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как закрыть Excel???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (15): Анонимы (12), Bing Bot, Yandex Bot 2 мин., Google Bot 7 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]