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

Byref argument type mismatch

25.02.2016, 19:58. Показов 2912. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Мне была дана задача :
Я реализовал все в данном коде :

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
Function Factorial(n As Integer, f As Integer)
f = 1
For i = 1 To n
Do
f = f * i
End Function
Private Sub Command1_Click()
Main.Visible = True
f1.Visible = False
End Sub
 
Private Sub Command2_Click()
Dim k1, n1, f1, f2, f3 As Integer
Dim res As Double
k1 = Val(Text1.Text)
n1 = Val(Text2.Text)
Call Factorial(n1, f1)
Call Factorial(k1, f2)
Call Factorial(n1 - k1, f3)
res = f1 / (f2 * f3)
Text3.Text = res
End Sub
 
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub

Не могу понять где ошибка...

Останавливается в этом месте :
Visual Basic
1
Call Factorial(n1, f1)
Программа примитивная, считывает значения из textboxoв, после чего считает и выводит результат в 3-ий textbox...
Пробовал реализовать процедурой, та же ошибка....
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2016, 19:58
Ответы с готовыми решениями:

ByRef argument type mismatch
Private Sub CommandButton1_Click() Dim Mas(0 To 4) As Integer Sum = CombRows(0, 0, Mas,...

Почему вдруг начали появляться сообщения "ByRef argument type mismatch"?
Работал достаточно долго с программой. Проверял элементы по отдельности. Делаю сборку программы - и...

Ошибка "ByRef argument type missmatch"
Здравствуйте. Передаю в процедуру параметры Лист и Массив. Вот код: ReDim...

Ошибка "argument type mismatch"
Me.Controls("Label" & zahod + 1).Caption = num_cows(s, s1) Function num_cows(s, s1) k = 0 For...

8
Заблокирован
25.02.2016, 20:03 2
Цитата Сообщение от re3ak98 Посмотреть сообщение
Dim k1, n1, f1, f2, f3 As Integer
Наглядный пример неграмотного для VBA объявления переменных - тип переменной следует указывать для каждой из них.
Следующей проблемой у Вас будет кривая функция факториала...
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
25.02.2016, 20:16  [ТС] 3
Цитата Сообщение от Shersh Посмотреть сообщение
Наглядный пример неграмотного для VBA объявления переменных - тип переменной следует указывать для каждой из них.
Следующей проблемой у Вас будет кривая функция факториала...
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim k1 As Integer
Dim n1 As Integer
Dim f1 As Integer
Dim f2 As Integer
Dim f3 As Integer
Dim res As Double
k1 = Val(Text1.Text)
n1 = Val(Text2.Text)
Call Factorial(n, f1)
Call Factorial(k, f2)
Call Factorial(n - k, f3)
res = f1 / (f2 * f3)
Объявил все переменные заново. Опять же останавливается в этом же месте, с той же ошибкой...

Нашел ошибку в своем коде...
Теперь ошибку не выбивает. Значение просто не считает и все..

Добавлено через 6 минут
Цитата Сообщение от re3ak98 Посмотреть сообщение
Теперь ошибку не выбивает. Значение просто не считает и все..
Поменял функцию на процедуру.
Ошибка : runtime error '6'
Overflow
0
Заблокирован
25.02.2016, 20:21 4
Цитата Сообщение от re3ak98 Посмотреть сообщение
Ошибка : runtime error '6'
Overflow
Вполне ожидаемо - Integer < 32768.
Юзайте LONG, если не поможет - DOUBLE, если и тут не повезёт - сдавайтесь

Добавлено через 1 минуту
Покажите свой новый Factorial, кстати.
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
25.02.2016, 20:24  [ТС] 5
Цитата Сообщение от Shersh Посмотреть сообщение
Вполне ожидаемо - Integer < 32768.
Юзайте LONG, если не поможет - DOUBLE, если и тут не повезёт - сдавайтесь
Не помогло, ни одно, ни другое.
Придется, пробовать писать программу через Visual C++...
Basic для меня слишком сложен
0
Заблокирован
25.02.2016, 20:27 6
Покажи последний вариант полностью - может и сдюжим
0
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
25.02.2016, 20:43  [ТС] 7
Цитата Сообщение от Shersh Посмотреть сообщение
Покажи последний вариант полностью - может и сдюжим
Забыл, что в 6 vb проект не сохраняется автоматически... программа тупо взяла и подвисла...
Но благо память хорошая

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
Private Sub Factorial(n As Double, f As Double)
f = 1
For i = 1 To n
Next i
Do
f = f * i
Loop
End Sub
 
Private Sub Command1_Click()
Main.Visible = True
f1.Visible = False
End Sub
 
Private Sub Command2_Click()
Dim k1 As Double, n1 As Double, f1 As Double, f2 As Double, f3 As Double
Dim res As Double
k1 = Val(Text1.Text)
n1 = Val(Text2.Text)
Call Factorial(n1, f1)
Call Factorial(k1, f2)
Call Factorial(n1 - k1, f3)
res = f1 / (f2 * f3)
Text3.Text = res
End Sub
 
Private Sub Form_Load()
Text1.Text = ""
Text2.Text = ""
End Sub
0
Заблокирован
25.02.2016, 20:52 8
Лучший ответ Сообщение было отмечено re3ak98 как решение

Решение

Исправьте -
Цитата Сообщение от re3ak98 Посмотреть сообщение
Private Sub Factorial(n As Double, f As Double)
f = 1
For i = 2 To n
F= F*I
Next i
Do
f = f * i
Loop

End Sub
Кстати, что мы делаем в VBA - кодим ведь в VB6?
1
0 / 0 / 0
Регистрация: 15.07.2011
Сообщений: 52
25.02.2016, 21:08  [ТС] 9
ОГРОМНЕЙШЕЕ СПАСИБО!!!
Вы меня просто спасли, от неминуемой двойки!

Цитата Сообщение от Shersh Посмотреть сообщение
Кстати, что мы делаем в VBA - кодим ведь в VB6?
Я вроде бы создавал тему в разделе Visual Basic.
Скорее всего перепутал, извиняюсь.
0
25.02.2016, 21:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2016, 21:08
Помогаю со студенческими работами здесь

Не вызывается функция (Type mismatch: array or user-defined type expected)
Помогите Option Explicit Dim X() As Double Dim Y() As Double Sub Кнопка1_Щелчок() Dim i As...

Type Mismatch
Доброго времени суток, здравствуйте. У меня возникла определённая проблема, которую не не совсем...

Type mismatch
Есть программа учётов товара,при вычислении суммы товаров на продажу выдаёт ошибку type mismatch...

Type mismatch
Добрый день. Помогите, пожалуйста. У меня есть следующий макрос: tempUkn =...


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

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