Где ошибка?

Программирование на Visual Basic for Applications
Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 31.10.2003 (Пт) 9:52

Привет, всем.
Проблема: пытаюсь распечатать кусок в XL из формы - то вообще не печатает, то распечатает, а потом вообще не реагирунт. Где ошибка?
Dim myExcel As Excel.Application
Set myExcel = New Excel.Application
Worksheets.Item("Лист2").Activate
Sheets("Лист2").Range("A1:H31").Select
myExcel.Visible = True
Selection.PrintOut 1, True.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 31.10.2003 (Пт) 10:15

Когда создаёшь эксель, книга в нём пустая, так ведь? :)
Хотя, если в автозагрузке...
Ну попробуй явно объект указать:
Код: Выделить всё
Dim myExcel As new Excel.Application
myExcel.worksheets("Лист2").range("A1:H31").printout 1, [кстати, здесь должен быть номер последней страницы печати, почему у тебя true?]
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 31.10.2003 (Пт) 11:36

Я впервы сталкиваюсь с печатью, поэтому не сам придумал этот код.
При печати через окно, конечно, всегда задаешь, например: печатать с 1 по n страницу, а здесь я выделил облость и как сказал печатать ее 1 копию (может не прав).
myExcel.worksheets("Лист2").range("A1:H31").printout 1, ? - что тогда здесь должно стоять1, если печатаю первую страницу?
Сейчас попробую.

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 31.10.2003 (Пт) 12:21

Попробовал. Мне стало очень грустно! Ругаеться "что метод worsheets для объекта application failes". Что это? Пробовал различные варианты - печать молчит, как партизан, хоть бы ругнулась.

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 31.10.2003 (Пт) 12:51

Можно ли программно в форме вызвать окно "Печать" и там явным способом указать, что печатать? Конечно, хотелось бы печатать в "темную".

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 01.11.2003 (Сб) 8:11

Не, это я простегал :)

myExcel.ActiveWorkbook.worksheets("Лист2").range("A1:H31").printout 1, 1
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 03.11.2003 (Пн) 9:17

Что-то я совсем запутался, у меня все ругается.
Как же тогда будет выглядеть код под кнопкой ПЕЧАТЬ?

Starik
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 05.11.2002 (Вт) 16:55
Откуда: Russia

Где ошибка?

Сообщение Starik » 04.11.2003 (Вт) 9:40

GSerg, спасибо за помощь. Помучился вчера, но все заработало.
myExcel.ActiveWorkbook.worksheets("Лист2").range("A1:H31").printout 1, 1 - на это у меня ругается по поводу "myExcel". Пробовал по всякому. Потом решил вызвать просмотр печати - ругается на "myExcel". Плюнул я на это, кусок ("A1:H31") сделал 1 страницей написал: ActiveWindow.SelectedSheets.PrintOut 1, 1 - все заработало.
Так что вопрос решен. Еще раз тебе спасибо.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList