|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.07.2010, 12:21 | #1 |
Пользователь
Регистрация: 16.07.2010
Сообщений: 17
|
Ошибка run-time error 13 Type mismatch в VBA
Ребят есть у меня такая вот програ:
Код:
и погда нажимаю на исполнение выводит таки ошибку 13 в графе с меткой 100. Не подскажите в чем дело... где-то я видимо накосячил с типами данных, но никак не могу найти..Помогите))) Последний раз редактировалось Stilet; 19.07.2010 в 09:07. |
17.07.2010, 15:46 | #2 |
Форумчанин
Регистрация: 13.07.2010
Сообщений: 346
|
деление на 0 ??
Non est culpa vin, sed culpa bibentis
|
18.07.2010, 10:08 | #3 |
Пользователь
Регистрация: 16.07.2010
Сообщений: 17
|
Нет это не деление на ноль!! Там просто индекс будет нулевой,а значение будет другое
|
19.07.2010, 10:05 | #4 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
Ошибка номер раз:
Код:
Во-вторых, попробуй разбить формулу, например так: Код:
Нет нерешаемых задач - есть недостаток времени и данных!
|
19.07.2010, 11:48 | #5 |
Пользователь
Регистрация: 16.07.2010
Сообщений: 17
|
да я уже понял что тама ошибка... я переписал прогу :
Dim t As Double Dim strFileName As String Dim strFileContent As String Dim nFreeFile As Integer Dim nFileLenght As Integer Function P(x, xt, yt) As Double For I = 0 To 30 If x > xt(30) And x < xt(30) - t / 10000 Then x = xt(30) If x >= xt(I) And x <= xt(I + 1) Then GoTo 100 Next Print ("Значение х лежит вне таблич. знач.") Stop 100: P = yt(I) + (yt(I + 1) - yt(I)) * (x - xt(I)) / (xt(I + 1) - xt(I)) End Function Private Sub cbRas_Click() Dim xt(30) As Double, yt(30) As Double, xm(120) As Double, ym(2, 120) As Double, x As Double, Y(2) As Double, H As Double, H1 As Double, Smax As Double, Amax As Double t = xt(30) V = 0.00182 A = 0.082 C = 696 M = 2.03 K = 989 P0 = 100000 G = 1.2 Y(1) = 0 Y(2) = 0 H = t / 120 H1 = H / 100 x = 0 xm(1) = 0 ym(1, 1) = 0 ym(2, 1) = 0 Smax = ym(1, 1) Amax = ym(2, 1) For I = 0 To 30 xt(I) = Val(Text2(I).Text) yt(I) = Val(Text3(I).Text) Next For k1 = 2 To 121 For k2 = 1 To 100 F1 = Y(2) F2 = (-C / M) * Y(2) - K / M * Y(1) + A / M * (P(x, xt, yt) + (1 - (V / (V - A * Y(1))) ^ G)) * 100000 x = x + H1 Y(1) = Y(1) + F1 * H1 Y(2) = Y(2) + F2 * H1 Next xm(k1) = x ym(1, k1) = Y(1) * 100 ym(2, k1) = Y(2) If Abs(ym(1, k1)) > Abs(Smax) Then Smax = ym(1, k1) If Abs(ym(2, k1)) > Abs(Amax) Then Amax = ym(2, k1) Next Print Smax, Amax End Sub и все равно по метке 100 ошибка на этот раз ран тайм 6 |
19.07.2010, 11:59 | #6 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
я говорю, разбей строку и посмотри где именно возникает ошибка
А функцию лучше написать так: Код:
Код:
Нет нерешаемых задач - есть недостаток времени и данных!
|
19.07.2010, 12:52 | #7 |
Пользователь
Регистрация: 16.07.2010
Сообщений: 17
|
вобщем переписал... но ошибка осталась на той же строчке
P = a + (b - a) * (x - d) / (c - d) ошибка рантайм 6 оверфлоу... |
19.07.2010, 15:33 | #8 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Как объявлена переменная P?
Лучше день потерять — потом за пять минут долететь!©
|
19.07.2010, 16:07 | #9 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
Это не переменная, а функция:
Код:
А вообще используй команду Option Explicit, чтобы неопределённые переменные не пролазили.
Нет нерешаемых задач - есть недостаток времени и данных!
|
19.07.2010, 16:10 | #10 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
а в каком диапазоне лежат значения a, b, c и d?
Нет нерешаемых задач - есть недостаток времени и данных!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка - Run-time error '91' Object variable or With block variable not set | Артур Иваныч | Microsoft Office Excel | 13 | 12.09.2012 14:18 |
ошибка run-time 1004: application-defined or object-defined error | Святой Дьявол | Microsoft Office Excel | 3 | 26.06.2010 11:06 |
Pivot Run-time Error 1004 | stream71 | Microsoft Office Excel | 0 | 07.09.2009 15:41 |
Ошибка Run-Time error 13 | DEZuv | Microsoft Office Access | 0 | 03.04.2009 12:25 |
Подскажите! Run-time error '7' Out of memory | evgenjp | Свободное общение | 3 | 01.10.2008 09:16 |