Ваш опыт работы в WORD'E бесценен. (Близок к самоубийству)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Ваш опыт работы в WORD'E бесценен. (Близок к самоубийству)

Сообщение Ostin » 08.03.2006 (Ср) 8:51

Создаю документ
добавляю таблицу
форматирую таблицу
сохраняю закрываю.

Все замечательно! Но при повторном вышеописанном процессе возникает ошибка "ран-тайм 462"

The remote server machine does not exist or is unavailable

и самое смешное: дебюг отсылает на участок кода которая изменяет высоту строк в таблице. Как только убмраю эту строчку (в коде) все работает замечательно, но таблица становится уродской.. :(



Set WordApp = New Word.Application
Set Doc = WordApp.Documents.Open(App.Path & "\pattern\bill.doc")

WordApp.Application.Selection.Find.Text = "%TableBill%"
WordApp.Application.Selection.Find.Execute
Set TableBill = Doc.Tables.Add(Doc.Application.Selection.Range, frmBill.Liner + 5, 6) ' ñòðîêè: "+1" ïîòîìó ÷òî Liner íà÷èíàåòñÿ ñ 0, "+1" åùå ó÷èòûâàåì "Øàïêó" "+3" íèæíèå òðè ñòðîêè (èòîãî...)




TableBill.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
For i = 1 To frmBill.Liner + 2
For j = 1 To 6
TableBill.Cell(i, j).VerticalAlignment = wdCellAlignVerticalCenter
Next
Next

TableBill.Cell(frmBill.Liner + 3, 1).VerticalAlignment = wdCellAlignVerticalCenter
TableBill.Cell(frmBill.Liner + 3, 5).VerticalAlignment = wdCellAlignVerticalCenter
TableBill.Cell(frmBill.Liner + 4, 1).VerticalAlignment = wdCellAlignVerticalCenter
TableBill.Cell(frmBill.Liner + 4, 5).VerticalAlignment = wdCellAlignVerticalCenter
TableBill.Cell(frmBill.Liner + 5, 1).VerticalAlignment = wdCellAlignVerticalCenter
TableBill.Cell(frmBill.Liner + 5, 5).VerticalAlignment = wdCellAlignVerticalCenter


TableBill.Rows.Height = CentimetersToPoints(0.6) 'вот эти две
TableBill.Rows(1).Height = CentimetersToPoints(1.2) 'дурные строчки

TableBill.Columns(1).Width = CentimetersToPoints(1)
TableBill.Columns(2).Width = CentimetersToPoints(7)
TableBill.Columns(3).Width = CentimetersToPoints(2)
TableBill.Columns(4).Width = CentimetersToPoints(2)
TableBill.Columns(5).Width = CentimetersToPoints(2.5)
TableBill.Columns(6).Width = CentimetersToPoints(3.2)

...............

Doc.SaveAs App.Path & "\docs\" & Num & "-pattern(" & Pattern & ")"



Set .TableBill = Nothing
Doc.Close
Set Doc = Nothing
WordApp.quit
Set WordApp = Nothing


При первом заходе получается, а вот на втором - ошибка.
Господа, я верю в Вас!


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

Сообщение GSerg » 08.03.2006 (Ср) 8:59

Возможно, имеет смысл не полагаться на global и юзать WordApp.CentimetersToPoints()

ЗЫ. Конструкция WordApp.Application не имеет смысла и эквивалентна просто WordApp.
ЗЗЫ. На этом форуме дублировать темы в разных разделах, мягко говоря, не принято.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 9:11

За дублирование извините. Я теперь понял, что вы без того очень оперативно реагируете.

Возможно, имеет смысл не полагаться на global и юзать WordApp.CentimetersToPoints()


А в каком месте я использовал глобал. И я не представляю как будут выглядеть те две строчки.

зы возможно я что то не понял :roll:

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

Сообщение GSerg » 08.03.2006 (Ср) 9:18

= CentimetersToPoints(1)
= WordApp.CentimetersToPoints(1)

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

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 9:24

= WordApp.CentimetersToPoints(1)

Жаль.. но это ничего не дало..

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

Сообщение GSerg » 08.03.2006 (Ср) 9:30

Обратимся к другим вариантам.
Остаётся ли Word в списке процессов после первого прохода?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 9:36

В том то и дело, что не остается! Плюс ко всем объектам NOTHING..
Повторюсь - если убрать две строчки меняющие высоту - все становится Хокей :!:

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 9:39

Может есть другие методы изменения высоты ячеек? Пусть через задницу, как-нибудь циклом но все же...

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

Сообщение GSerg » 08.03.2006 (Ср) 9:45

Если сделать word видимым, он ничего не спрашивает там?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

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

Сообщение GSerg » 08.03.2006 (Ср) 9:50

И всё-таки, основываясь на http://bbs.vbstreets.ru/viewtopic.php?t=6250, - все ли обращения к global были заменены на WordApp. ?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 14:09

ААААААААААААААААААААААААААААААААААААААААААААА!!!!!!!!!!!

СУПЕР!!!!!!!!!!!!!!!!!!!!!!!!!!!! :cheers:

ПРОСТО БЛЕСК! GSerg СПАСИБО огромное, что был участен!! СПАСИБО!!! :wink:



ps: Я до сих пор не въехал, что за "обращения к глобал" но просто подставил перед всеми вордовскими функциями wordapp. и о ЧУДО!
Вначале я исправил только в тех двух строчках. Ошибка 462 повторилась (а я не посмотрел на каком теперь месте она возникла), и когда исправил вообще во ВСЕХ - вот тогда заработало!

Встречный вопрос - почему тогда в первый запуск все прокатывает удачно?

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

Сообщение GSerg » 08.03.2006 (Ср) 14:42

Ostin писал(а):ps: Я до сих пор не въехал, что за "обращения к глобал"

Нажми F2, выбери категорию <globals>...

Ostin писал(а):Встречный вопрос - почему тогда в первый запуск все прокатывает удачно?

Возможно, VB создаёт ссылку на соответствующие функции при первом создании word, а потом нет формальной причины её обновлять...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ostin
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 08.03.2006 (Ср) 8:21

Сообщение Ostin » 08.03.2006 (Ср) 22:06

GSerg писал(а):
Ostin писал(а):ps: Я до сих пор не въехал, что за "обращения к глобал"

Нажми F2, выбери категорию <globals>...
...


Ну слава богу, въехал. Спасибо GSerg и удачи :wink:


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Yandex-бот и гости: 105

    TopList