Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экспорт значений xl в Word (не работает пример), макрос вызывает ошибку 
V
    Опции темы
kashemirny
Дата 9.9.2009, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



В известной книге по VBA нашел учебный пример экспорта документа xl в Word, собрался уже изучить его и потихоньку ваять экспорт договора в Word из данных xl, однако обнаружил, что этот пример не работает - возникает ошибка компиляции "Method or data member not found". Подскажите, в чем ошибка и как ее устранить?

Код объекта "ЭтаКнига":
Код

'При открытии рабочей книги показываем форму UF1
Private Sub Workbook_Open()
UF1.Show
End Sub
'Специальная процедура, которая печатает приказ в Word
Private Sub DocWrite(sPovod As String, sFio As String, bFlagPremia As Boolean, bFlagGramota As Boolean, nSummaPremii As Long, sOtvIsp As String)
Dim oWord As Word.Application
Dim oDoc As Word.Document
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add()
oWord.Visible = True
oDoc.Activate
With oWord.Selection
.TypeText "Приказ"
.Style = "Заголовок 1"
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeText vbCrLf
.Style = "Обычный"
.TypeText vbCrLf
.TypeText "г.Санкт-Петербург" & Space(90) & Date
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText "За проявленные успехи в " & sPovod & _
" наградить " & sFio & ":"
.TypeText vbCrLf
If bFlagPremia Then
.TypeText vbTab & "- денежной премией в сумме " & _
nSummaPremii & " рублей"
End If
If bFlagGramota Then
.TypeText vbCrLf
.TypeText vbTab & "- почетной грамотой."
Else
.TypeText "."
End If
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText vbCrLf
.TypeText "Генеральный директор" & vbTab & vbTab & _
vbTab & "Иванов И. И."
.ParagraphFormat.Alignment = wdAlignParagraphCenter
.TypeParagraph
.TypeText vbCrLf
.TypeText vbCrLf
.ParagraphFormat.Alignment = wdAlignParagraphLeft
.TypeText Text:=("Отв. исполнитель " & sOtvIsp)
.TypeParagraph
End With
End Sub


Код кнопки формы:
Код

Private Sub CommandButton1_Click()
Dim sPovod As String
Dim sFio As String
Dim bFlagPremia As Boolean
Dim bFlagGramota As Boolean
Dim nSummaPremii As Long
Dim sOtvIsp As String
'Подставить данные из формы
sPovod = "освоении новых информационных технологий"
sFio = "Иванова Ивана Ивановича"
bFlagPremia = True
bFlagGramota = True
nSummaPremii = 100000
sOtvIsp = "Петрова П. П."
'Конец подстановки данных
Call ЭтаКнига.DocWrite(sPovod, sFio, bFlagPremia, bFlagGramota, _
nSummaPremii, sOtvIsp)
End Sub


Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  prikaz.xls 32,00 Kb
PM MAIL   Вверх
ИгнатьевАлексей
Дата 9.9.2009, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: 2
Всего: 3



kashemirny, по моему, элементарно. У тебя стоит вызов процедуры объекта "ЭтаКнига" и эта процедура Private. Это означает, что вызов извне закрыт. Убирай Private и почитай об этом в той же книге.  smile 
Но на этом твои мучения не закончатся. Вылезет ошибка в 7-й строке уже по другому поводу.....



--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 9.9.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Во-первых, DocWrite следует сделать Public.
Во-вторых, следует подключить референс на объектную либу Ворда.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kashemirny
Дата 9.9.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



ИгнатьевАлексей, дык пробовал Private убирать, подспудно чувствуя неладное, как вы и написали - ошибка в 7й строке.

Akina, по первому пункту - что даст Public ?
по второму пункту - Dim oDoc As Word.Document - вызывает ошибку, т.к. нет референса? подскажите, плиз, как сделать ссылку....  smile 
 
PM MAIL   Вверх
Akina
Дата 9.9.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(kashemirny @  9.9.2009,  14:32 Найти цитируемый пост)
что даст Public

Доступность процедуры для вызова из других модулей

Цитата(kashemirny @  9.9.2009,  14:32 Найти цитируемый пост)
как сделать ссылку

Tools - References. Найти нужную строку и поставить галку.
И не спрашивай, которая нужная - изволь просмотреть весь список. 
Не ошибёшься.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kashemirny
Дата 9.9.2009, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Akina, УРЯЯЯЯЯЯ!!!!  smile 

p.s. тему просьба не закрывать - еще будут вопросы, имхо  smile 
PM MAIL   Вверх
Akina
Дата 9.9.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Правила форума: http://forum.vingrad.ru/index.php?act=boardrules
Пункт 10.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kashemirny
Дата 9.9.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 12.11.2007

Репутация: нет
Всего: нет



Akina, сорри  smile 
и спасибо за помощь!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0527 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.