Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
realllmxa
0 / 0 / 0
Регистрация: 05.07.2017
Сообщений: 3
1

Не вызывается функция (Type mismatch: array or user-defined type expected)

06.07.2017, 15:10. Просмотров 887. Ответов 3
Метки нет (Все метки)

Помогите
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
92
93
Option Explicit
Dim X() As Double
Dim Y() As Double
Sub Кнопка1_Щелчок()
Dim i As Integer
Dim a As Double
Dim n As Double
Dim b As Double
Dim n1 As Double
Dim Toch As Double
Dim e As Double
Dim Sum As Double
Dim S As Double
Dim S2 As Double
Dim h As Double
Dim Itog As Double
[A1] = "№"
[B1] = "X"
[C1] = "Y"
a = InputBox("Введите начало отрезка интегрирования")
b = InputBox("Введите конец отрезка интегрирования")
n1 = InputBox("Введите количество отрезков ")
e = InputBox("Введите точность")
1: n = InputBox("Введите количество точек")
    'If Not IsNumeric(n) Or n = "" Then
        'MsgBox ("Ошибка ввода, повторите ввод"): GoTo 1
    'End If
ReDim X(0 To n - 1)
ReDim Y(0 To n - 1)
    For i = 0 To n - 1
        Cells(i + 2, 1) = i
2:      X(i) = (InputBox("Введите x" & i))
            'If Not IsNumeric(X(i)) Or X(i) = "" Then
                'MsgBox ("Ошибка ввода, повторите ввод"): GoTo 2
           ' End If
        Cells(i + 2, 2) = X(i)
3:      Y(i) = (InputBox("Введите y" & i))
            'If Not IsNumeric(Y(i)) Or Y(i) = "" Then
                'MsgBox ("Ошибка ввода, повторите ввод"): GoTo 3
            'End If
        Cells(i + 2, 3) = Y(i)
    Next i
Columns.AutoFit
Do While Abs(S - S2) < e
    Itog = 0
    h = (b - a) / n1
    For i = 1 To n1 - 1
        Sum = 0
        Toch = a + i + h
            If i Mod 2 = 0 Then
                Sum = Sum + 2 * Newton(Toch)
            Else
                Sum = Sum + 4 * Newton(Toch)
            End If
        Itog = Itog + Sum
    Next i
    S = ((Itog + Newton(a) + Newton(b)) * (h / 3))
    
    Itog = 0
    h = (b - a) / (2 * n1)
    For i = 1 To n1 - 1
        Sum = 0
        Toch = a + i + h
            If i Mod 2 = 0 Then
                Sum = Sum + 2 * Newton(Toch)
            Else
                Sum = Sum + 4 * Newton(Toch)
            End If
        Itog = Itog + Sum
    Next i
    S2 = ((Itog + Newton(a) + Newton(b)) * (h / 3))
    
    Loop
MsgBox (S2)
End Sub
 
Public Function Newton(X() As Double, Y() As Double, n As Double, Iks As Double) As Double
Dim k As Integer
Dim i As Integer
Dim P As Double
Dim l As Double
Dim D As Variant
l = Y(0)
P = 1
For k = 1 To n
    P = P * ((Iks) - X(k - 1))
    For i = 0 To (m - k - 1)
        Y(i) = (Y(i + 1) - Y(i)) / (X(i + k) - X(i))
    Next i
    l = l + P * Y(0)
Next k
Newton = l
End Function
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2017, 15:10
Ответы с готовыми решениями:

'User - defined type not defined' при запуске моей процедуры
Здравствуйте, меня зовут Сергей. Я - тот, кого называют чайником в вопросах программирования...

Compile error: User-defined type not defined помогите разобраться
Есть код: Private Sub Поле1_GotFocus() Dim dbs As Database Dim rst As Recordset Dim...

Ошибка `user-defined type not defined`. VBA для OneNote
Используется Win-7; Excel-2016; OneNote-2016. Пробую выполнить пример согласно этой статьи:...

User-defined type not defined. Ругается на объявление корневой процедуры
Привет! Поискал решение, не нашел, давно не обращался за помощью на форум так вот ругается на...

Ошибка 'User-defined type not defined' на ADODB.Recordset
В MSWord 2000 такая проблема: компилятор выдает ошибку 'User-defined type not defined' на...

3
Vlad999
3162 / 1943 / 620
Регистрация: 02.11.2012
Сообщений: 4,991
06.07.2017, 15:27 2
у функции 4 переменных, а передаете только одну?
0
realllmxa
0 / 0 / 0
Регистрация: 05.07.2017
Сообщений: 3
06.07.2017, 15:39  [ТС] 3
Дело в том, что он даже на эту одну указывает и отказывается принимать ее
0
mathidiot
Эксперт по математике/физике
3431 / 2904 / 1272
Регистрация: 14.01.2014
Сообщений: 6,247
07.07.2017, 16:36 4
У Вас в функции Newton параметр Х() - массив, судя по внутреннему коду, а при вызове функции в этот параметр передается простая переменная Toch - конфликт типов.
0
07.07.2017, 16:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2017, 16:36

Открыть Excel-файл из VBA, ошибка: "User-defined Type not defined"
Привет всем. Сразу прошу прощения, если вопрос покажется ламерским - в программировании пока...

User-defined type not defined
Уважаемые, помогите, запарился... Есть макрос в Access, нужно вызывать этот макрос из excel (нужно...

Как устранить ошибку: "user-defined type not defined"?
Помогите с решением проблемы, выскакивает ошибка user defined type not defined при работе над...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.