Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: напечатать лист из другого файла можно?
 
 автор: puzo   (07.09.2011 в 12:56)   личное сообщение
 
 

есть файл
хочу в нём сделать кнопку, чтоб можно было печатать лист2 другого файла. можно такое ?
Sheets( "D:\exel\[мой файл.*]!Лист2").PrintOut не работает. ошибка 9.
или так просто нельзя а надо что-то умное придумывать ?
спасибо.

  Ответить  
 
 автор: ddi   (07.09.2011 в 13:01)   личное сообщение
 
 

Из акссеса?

  Ответить  
 
 автор: puzo   (07.09.2011 в 13:53)   личное сообщение
 
 

не
не из аксесса.из екселя.
аксесса на той машине, откуда запускать - нету и это страшный зверь.
а вот ексель - да, очень хорошо бы была такая кнопка.
если открывать каждый файл (так щас и делается ) - то получается долго очень(да, я понимаю, что если программно чтотоэтакоеделать - то программа всё равно будет открывать тот файл).
поэтому хочется кнопку нажал, инпутбоксом ввёл номер файла, в котором распечатать лист с определённым названием,
в мессаджбоксе нажал "да,ещё хочу", и по новой. ибо этих страниц надо напечатать из разных файлов штук 10-15-20.

  Ответить  
 
 автор: osmor   (07.09.2011 в 13:04)   личное сообщение
 
 

нужно открыть нужный файл и из него распечатать

  Ответить  
 
 автор: ddi   (07.09.2011 в 13:54)   личное сообщение
 
 

вроде бы так

Dim z As New Excel.Application
z.Workbooks.Open FileName:="D:\1.xlsx"
z.ActiveWindow.SelectedSheets.PrintOut Copies:=1

  Ответить  
 
 автор: puzo   (07.09.2011 в 15:01)   личное сообщение
 
 

ага
работает.
тока я не знаю, как выбрать нужный лист ( на воркшитс("лист2").селект ругается )
и потом файлы, которые открывались - открываются в каком-то ужасном виде. не то на весь экран, не то на половину.
спасибо.
буду искать как выбрать лист а не печатать тот, который остался выбранным при прошлом закрытии файла.

  Ответить  
 
 автор: Анатолий (Киев)   (07.09.2011 в 15:31)   личное сообщение
 
 

Попробуйте иначе:

Dim XlApp As New Excel.Application 

Set WB = XlApp.Workbooks.Open FileName:="D:\1.xlsx" 
WB.WorkSheets("Лист2").PrintOut Copies:=1
WB.Close

Set WB = XlApp.Workbooks.Open FileName:="D:\2.xlsx" 
WB.WorkSheets("Лист1").PrintOut Copies:=2
WB.WorkSheets("Лист2").PrintOut Copies:=1
WB.Close

XlApp.Quit

  Ответить  
 
 автор: puzo   (07.09.2011 в 16:00)   личное сообщение
 
 

СПАСИБО!
на всякий пожарный написал Dim WB As Workbook
и да, в такой трактовке не получилось почему-то написать FileName:=...
просто Оpen("путькфайлу\имяфайла") - сработало.

спасибо всем, что отвечаете на столь простые вопросы !

  Ответить  
 
 автор: Анатолий (Киев)   (07.09.2011 в 16:05)   личное сообщение
 
 


и да, в такой трактовке не получилось почему-то написать FileName:=...
просто Оpen("путькфайлу\имяфайла") - сработало.


ИМХО, сработало б, если Set WB = XlApp.Workbooks.Open(FileName:="D:\1.xlsx") - в такой трактовке скобки нужны.

  Ответить  
 
 автор: puzo   (07.09.2011 в 17:06)   личное сообщение
 
 

f зачем в такой трактовке писать слово filename ? ведь это же первый аргумент, можно и опустить, тем более наглядно видно, что это . или жетательно и сокрыта какая-то хитрость ?

  Ответить  
 
 автор: Анатолий (Киев)   (07.09.2011 в 18:53)   личное сообщение
 
 


или жетательно и сокрыта какая-то хитрость ?


Никакой хитрости...
Коллега пожаловался, что так не получилось, а я уточнил, что из-за скобок.
Сам редко пользуюсь именованными аргументами.

  Ответить  
 
 автор: puzo   (08.09.2011 в 14:24)   личное сообщение
 
 

возникла неожиданная проблема :
имя файла всегда - число(номер ТЗ), но иногда бывают добавки типа "14-СРОЧНО"
в excel2007 я добавил звёздочку в строковую переменную, в которую собирается адрес местоположения файла: spath = spath & Trim(Str(iTZ)) & "*.xls" и всё работает и с "длинными" названиями файла и с "короткими".
а в excel2003 почему-то при наличии звёздочки ругается, что не может найти файл
в строке Set WB = XlApp.Workbooks.Open(spath)
что-то надо специальное написать для excel2003 или потанцевать с бубном над переменной spath?
(правда пока не представляю, как именно плясать).
спасибо.

  Ответить  
 
 автор: Анатолий (Киев)   (08.09.2011 в 15:10)   личное сообщение
 
 

Т.е. в excel2007 метод Workbooks.Open сам выполняет поиск файла по шаблону? Не знал.

Классический способ поиска файла(ов) по шаблону - функция Dir

  Ответить  
 
 автор: puzo   (08.09.2011 в 17:38)   личное сообщение
 
 

и то верно
извиняюсь. всё заработало и там и сям )
эх, и чо я не пошёл в программисты после инстута...

  Ответить  
 
 автор: puzo   (20.09.2011 в 15:11)   личное сообщение
 
 

а можно ещё тогда убрать вопрос "сохранить изменения в файле таком_то ?"
чтоб просто печатало и не спрашивало ничего.
в аргументах принт_аут вроде такого нет

  Ответить  
 
 автор: Анатолий (Киев)   (20.09.2011 в 16:29)   личное сообщение
 
 

WB.Save перед WB.Close

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList