powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Excel
25 сообщений из 26, страница 1 из 2
Excel
    #32293913
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как мне программно создать Excel файл с определенным именем
...
Рейтинг: 0 / 0
Excel
    #32293924
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
Set xlwN = CreateObject( "Excel.Sheet" )
Set xlaN = xlwN.Parent
xlwN.Save( "MyFile.xls" )
xlaN.Quit


Предварительно надо подключить библиотеку Excel
...
Рейтинг: 0 / 0
Excel
    #32293931
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот насчет библиотеки есть такой вопрос:
Если я у себя на машине в проекте подключил єтоу библиотеку то если запустить этот проет на другой машине то будет она подключена, если нет то как ее программно подключить
...
Рейтинг: 0 / 0
Excel
    #32293937
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет.
...
Рейтинг: 0 / 0
Excel
    #32293942
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как создать лист в этой книге
...
Рейтинг: 0 / 0
Excel
    #32293945
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как создать такую книгу как при открытии Excel
без определенного имени с тримя листами
...
Рейтинг: 0 / 0
Excel
    #32293948
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так...
К предыдущим строкам добавь вначале
Код: plaintext
1.
Dim xlaN as Excel.Workbook
Dim xlwN as Excel.Worksheet


После чего набери xlaN. или xlwN. , смотри на вывалившийся перечень методов/свойств, жми F1 и читай...
...
Рейтинг: 0 / 0
Excel
    #32294054
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну написал я чета типа такого

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject( "Excel.Sheet" )


ExcelSheet.Application.Visible = True

For i =  1  To  200 
ExcelSheet.Application.Cells(i,  1 ).Value =  "This is column A, row "  + Str(i)
Next i
ExcelSheet.SaveAs  "C:\TEST.XLS" 

Как сделать чтобы после сохранения не закрывалось окно Excel
...
Рейтинг: 0 / 0
Excel
    #32294065
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как сделать чтобы после сохранения не закрывалось окно Excel

Сделать отдельный объект Екцел
Сделать отдельный объект Книга
Сделать отдельный объект Лист

Dim xl As Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Set xl = CreateObject("Excel.Application")
xl.Visible = False
Set wb = xl.Workbooks.Add
или
Set wb= xl.Workbooks.Open(....)
Set ws = wb.Worksheets(....)


wb.save
'xl.Quit
...
Рейтинг: 0 / 0
Excel
    #32294078
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле можно не подключать битлотеку Excel. После продолжительных мучений с references, когда то версия dll не совпадает с твоей, то вообще такой dll нет и пр. я перестал явно подключать библиотеки. Единственный недостаток (случае с Excel) приходится явно задавать константы, но можно сделать один раз, а потом везде использовать.

Как сделать в новой книге n листов? До создания книги(Workbook) задать свойство Application.SheetsInNewWorbook=n.

Я бы сделал твой пример вот так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim Excel As Object
Dim WB As Object
Set Excel = CreateObject( "Excel.Application" )

Excel.SheetsInNewWorkbook =  1 
Excel.Visible = True
Set WB = Excel.Workbooks.Add

For i =  1  To  200 
    Excel.Sheets( 1 ).Cells(i,  1 ).Value =  "This is column A, row "  + Str(i)
Next i
WB.SaveAs  "C:\TEST.XLS" 
...
Рейтинг: 0 / 0
Excel
    #32294088
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Senin Viktor
Какое единство взглядов!

Сорри я опездал (с) Артист
...
Рейтинг: 0 / 0
Excel
    #32294111
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Какое единство взглядов!

Да где же тут единство? Щас я с тобой воевать буду

> когда то версия dll не совпадает с твоей,

Тогда и методы-свойства при создании более старой версии объекта могут отличататься

>то вообще такой dll нет и пр.

Ну тогда хоть раннее, хоть позденнее связывание - результат один - хрен

>я перестал явно подключать библиотеки

Зря. Проверить ссылки на билиотеки можно при запуске проги (см. IsBroken) и выдать юзеру инфу о том что делать.

>Единственный недостаток (случае с Excel) приходится явно задавать константы

Это не главный недостаток (это даже преемущество - код будет работать и на VBScript'e) - главный же: Позднее связывание работает гораздо медленей. Микрософт рекомендует использовать раннее.
...
Рейтинг: 0 / 0
Excel
    #32294156
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как сделать объединение ячеек
...
Рейтинг: 0 / 0
Excel
    #32294158
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как сделать чтобы была альбомная ориентация листа в Excel
...
Рейтинг: 0 / 0
Excel
    #32294198
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запусти в ёкселе запись макроса, сделай чего надобно ручками, а потом загляни в vbe - и будет тебе счастье...
...
Рейтинг: 0 / 0
Excel
    #32294289
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[]bSenin Viktor
Тогда и методы-свойства при создании более старой версии объекта могут отличататься

Не буду спорить, но скорее всего отличия в каких-то мелких деталях, которые и не понадобятся никогда. Объясню на реальном примере. Office 2000 стоит на трех компах, библиотека ADO ext. на всех разной версии (2.1, 2.5, 2.7) почему - не знаю. Отличий в работе никаких, только нужно постоянно подправлять reference.

Зря. Проверить ссылки на билиотеки можно при запуске проги (см. IsBroken) и выдать юзеру инфу о том что делать.
Продолжая описаный случай отмечу, что MISSING в reference не давал выполнять никакой код, в первых же строчках кода вылетала ошибка (что не очень нравилось заказчику). Даже если и пройдет isBroken как я узнаю как точно называется файл с нужной библиотекой(вариант с разными версиями)

И в третьих код получается автономным чтоли. При конвертации или при преобразовании к другой версии не придется каждый раз отмечать (а вначале вспоминать какие нужны) используемые библиотеки.

Насчет позднего связывания уточню...
...
Рейтинг: 0 / 0
Excel
    #32294293
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. не конвертации, а при импорте в чистую базу(довольно распространенная процедура)
...
Рейтинг: 0 / 0
Excel
    #32294328
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CtrlAlt

Все заработало нормально, но она фишка не выгружаеться из памяти Excel
даже когда выходишь из екселя
в программе делаешь
Excel.Quit
Set Excel = Nothing
Всеравно не выгружает из памяти?
...
Рейтинг: 0 / 0
Excel
    #32294339
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Set WB = Nothing до этого сделал?
...
Рейтинг: 0 / 0
Excel
    #32294344
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно говорит АлексейЕ . Все переменные, которые привязаны к Excel должны быть = Nothing, иначе Excel не освободится.
...
Рейтинг: 0 / 0
Excel
    #32294363
vinni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set WB = Nothing
Set Excel = Nothing
И всеравно не работает
...
Рейтинг: 0 / 0
Excel
    #32294373
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Продолжим HolyWar по поводу раннего/поздного связывания :)

>Не буду спорить, но скорее всего отличия в каких-то мелких деталях, которые и не понадобятся никогда.

А если упустил что-то? Надо постоянно держать в голове объектную модель всех версий. Да и в офисах обычно стоит один набор офиса. Наверное где-то такое и бывает: Акес2000, а Екцел 97 - но это уже бардак.

> Объясню на реальном примере. Office 2000 стоит на трех компах, библиотека ADO ext. на всех разной версии (2.1, 2.5, 2.7) почему - не знаю

А знать должен :)
MDAC входит в состав различных сервис-паков как SQL-сервера, так и Windows'a. Разумно делать сразу на 2.1 - родном для 2000, или 2.5 - родном для 2002. Но еще лучше (если, конечно, используешь новшества новой версии и беспокоишся о безопасности )- делать на 2.8 (пока последняя) и силой (ОМОН или сисадмин с похмелья:) установить данный MDAC на клиентов.

>И в третьих код получается автономным чтоли. При конвертации или при преобразовании к другой версии не придется каждый раз отмечать (а вначале вспоминать какие нужны) используемые библиотеки.

Ну ты выдумал :)
Что сложно запомнить какой офис у тебя стоит? И 2-3-5 ссылок подправить?

>Даже если и пройдет isBroken как я узнаю как точно называется файл с нужной библиотекой(вариант с разными версиями)

См.коллекцию Reference. Узнаем и встроенная ли эта ссылка, и полный путь к файлу-библиотеки, и GUID (можно в реестре покопаться) и самомо собой имя и версию (версии). Для mdb'ников (екцеля) - можно добавлять/удалять программно. С mde/ade - сложней, остается выдать окошко с инфой о том, что надо заново переустановить или офис (взависимости от того какая ссылка сломана) или программу (должна включать в себя установщик все что нужно).


==
ИМХО все
...
Рейтинг: 0 / 0
Excel
    #32294393
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Senin Viktor
Я тоже поучаствую в HolyWars

Мне ближе точка зрения CtrlAlt, обясню почему.
Программа многофункциональная и не все ее разделы (и не всеми пользователями) используются.
У некоторых стоит Runtime Access на голой ОС (в целях экономии на лицензиях) и они занимаются только тем, что вколачивают данные в базу, никаких Word, Excell не собираются использовать (хотя в программе заложена такая возможность).
При способе, который предлагает CtrlAlt нет отличий в клиентской части приложения, на каком бы компьютере оно не былы установлено.
...
Рейтинг: 0 / 0
Excel
    #32294394
CtrlAlt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что сложно запомнить какой офис у тебя стоит? И 2-3-5 ссылок подправить?
Я то знаю, что у меня где. Но база отдавалась заказчику на вечное пользование (заказчик - тётечки-чайнички), естественно проблемы со ссылками им не нужны. А база реплицировалась на несколько компов (не соединенных сеткой), поэтому нужна была работоспособность на разных системах. Везде стоял только Office 2000, но эта библиотека меня задолбала.

В конце концов пришлось в приказном порядке установить Office с одного компакта с нужными настройками.

А вообще ActiveX ацтой, но это тема для отдельного топика.

Бедный Vinni - попал под перестрелку...
...
Рейтинг: 0 / 0
Excel
    #32294721
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vinni
Excel имеет своих тараканов. При работе с ним нужно избегать "неявных" ссылок.
Пример:
Код: plaintext
xlBook.Close               

Excel закрывается
а вот так
Код: plaintext
Workbooks.Close 

Excel не закроется и останется в памяти

Как я понимаю, такое обращение к объектам Excel воспринимает как
интерактивное взаимодействие с пользователем, и после этого
закрыть его можно только вручную.
Поэтому при переносе в Access надо аккуратно относиться к коду, который Excel накропал в записываемом макросе.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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