Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 73
1

Не работает форма

09.02.2014, 10:37. Показов 2324. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При запуске формы и ввода в неё параметров после нажатия кнопки заполнения выводит ошибку-пользовательский тип не определён.Код взял с учебника по VBA(уже раза три переписывал):
1)Код добавленный в книгу
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Private Sub Workbook_Open()
UF1.Show
End Sub
'Специальная процедура, которая печатает приказ в Word
Public 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 ";"
.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
Код формы:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
Private Sub btnEscape_Click()
Unload Me
End Sub
 
Private Sub chPremia_Change()
If chPremia.Value = False Then
lblSum.Visible = False
txtSum.Visible = False
sbSum.Visible = False
Else
lblSum.Visible = True
txtSum.Visible = True
sbSum.Visible = True
End If
 
 
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
If optOsvoenie.Value = True Then sPovod = "освоении новых информационных технологий"
If optVnedrenie.Value = True Then sPovod = "внедрении новых программных продуктов"
If optDrugoe.Value = True Then sPovod = txtDrugoe.Value
sFio = cbFIO.Value
bFlagPremia = chPremia.Value
bFlagGramota = chGramota.Value
If bFlagPremia = False And bFlagGramota = False Then
MsgBox "Не выбрана ни премия, ни почетная грамота!"
Exit Sub
End If
nSummaPremii = sbSum.Value
'Подставить данные из формы
 
 
 
 
 
sOtvIsp = "Петрова П . П ."
' Конец подстановки данных
 
Call ЭтаКнига.DocWrite(sPovod, sFio, bFlagPremia, bFlagGramota, nSummaPremii, sOtvIsp)
End Sub
 
 
Private Sub CommandButton2_Click()
 
End Sub
 
Private Sub optDrugoe_Change()
If optDrugoe.Value = True Then
txtDrugoe.Visible = True
Else
txtDrugoe.Visible = False
End If
 
 
End Sub
 
Private Sub sbSum_Change()
txtSum.Value = sbSum.Value
End Sub
 
Private Sub txtSum_Change()
sbSum.Value = CInt(txtSum.Value)
End Sub
 
 
Private Sub UF1_Initialize()
optOsvoenie.Value = True
txtDrugoe.Visible = False
Dim oColumn As Range
Dim oCell As Range
Set oColumn = Columns("A")
For Each oCell In oColumn.Cells
If oCell.Value <> "" Then
cbFIO.AddItem oCell.Value
End If
Next
cbFIO.Value = "Иванова Ивана Ивановича"
chPremia.Value = True
chGramota.Value = True
sbSum.Value = 100
txtSum.Value = 100
 
 
End Sub
Компилятор показывает на ошибку в этой строке:
Public Sub DocWrite(sPovod As String, sFio As String, bFlagPremia As Boolean, bFlagGramota As Boolean, nSummaPremii As Long, sOtvIsp As String)
Подскажите что делать.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2014, 10:37
Ответы с готовыми решениями:

Простая форма веб-форма для сложения двух чисел не работает
Не работает скрипт для подсчета сложения.Может я неправильно привязал обработчик события(клик на...

Не работает форма обратной связи и форма авторизации
Не работает форма обратной связи и форма авторизации. Когда регистрируешься и нажимаешь на кнопку...

Управляемая форма. Не работает форма списка документа
Здравствуйте! Создал форму списка документа, сделал ее основной формой списка. В конфигураторе все...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
09.02.2014, 11:13 2
Выложи весь проект (в формате Office 2000 для совместимости).
1
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 73
09.02.2014, 12:22  [ТС] 3
Весь проект:
Вложения
Тип файла: xls Prikaz.xls (48.5 Кб, 39 просмотров)
0
11508 / 3794 / 681
Регистрация: 13.02.2009
Сообщений: 11,197
09.02.2014, 12:42 4
Лучший ответ Сообщение было отмечено Neocosmo как решение

Решение

Бейсик подсказывает
Dim oWord As Word.Application не подключён

Добавлено через 2 минуты
или не объявляй тип
Visual Basic
1
2
3
4
Dim oWord
Dim oDoc
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents.Add()
Добавлено через 1 минуту
Смешал раннее и позднее связывание
0
1 / 1 / 0
Регистрация: 25.01.2010
Сообщений: 73
09.02.2014, 12:55  [ТС] 5
Спасибо.Занёс в комментарии строки
Visual Basic
1
2
Dim oWord
Dim oDoc
И заработало!
0
131 / 0 / 0
Регистрация: 04.08.2015
Сообщений: 28
02.11.2015, 12:14 6
А у меня следующая проблема...разместила в worde CommandButton и вбила туда код макроса.. нужно, чтобы при нажатии на кнопку, выделялось написанное в ворде слово и добавлялись соответствующие слова. Что я делаю не так?(

Private Sub CommandButton3_Click()
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Copy
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:=", "
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeText Text:="àí, "
UserForm1.Show vbModeless
End Sub
0
02.11.2015, 12:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 12:14
Помогаю со студенческими работами здесь

Форма 1 вызывает форму 2, форма 2 закрывается, форма 1 продолжает работать дальше
Вынес предстартовые действия формы1 в форму2 (там у меня проверка существования файлов, их закачка...

не работает форма
В данной базе создал форму Gen для заполнения таблиц, но данные не сохраняются и поле номер заказа...

Не работает форма
вообщем такая проблема должно вводиться имя базы данных файла затем в базу должна собственно...

Не работает форма
Привет. Надеюсь, что кто-нибудь мне поможет :) Сделала форму отправки комментариев с сайта. PHP...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru