Народ кто не будь знаком с макросами
Vb Excel?
Суть такова,
VB как то не удосужился выучить а сейчас приперло, короче накатал так что получилось , программа работает но нестабильно, пока не могу въехать почему, объясню в чем косяк, с 1 или 2 запуска макроса цифры выдает сумму не ту которая должна быть, суть задачи такова есть 2 массива H и G массив H[17] массив G[15] должен и может содержать отрицательные числа которые должны суммироваться в конце листин моего кода привожу
1. объявил разные переменные
Dim G(15), i As Integer, sumG, tyG As Integer, numG As Integer, tyH As Integer, num As Integer
Dim H(17), j As Integer, sumH
Dim g1 As String
Dim s
Dim h1 As String, check As Boolean
g1 = ""
h1 = ""
2. Сделал цикл массива G[i] =15 и тут же генерит цифры от 100 до -50
For i = 1 To 15 // цикл
tyG = 0 // очищаю переменную
G(i) = Fix(100 * Rnd) - 50 // генерирую 15 разных чисел
g1 = g1 & "G[" & i & "]=" & G(i) & " " // тут для красивости
tyG = G(i)
s = proverka(tyG, tyH, numG, numH) // переход на функцию проверки
Next i
3. Собственно код что и предыддущий
For j = 1 To 17
tyH = 0
H(j) = Fix(100 * Rnd) - 50
h1 = h1 & "H[" & j & "]=" & H(j) & " "
tyH = H(j)
s = proverka(tyG, tyH, numG, numH)
Next j
MsgBox "Массив G " & Chr(13) & g1 & Chr(13) & Chr(13) & "Массив H " & Chr(13) & h1 & Chr(13) & Chr(13) & "Сумма G= " & numG & Chr(13) & Chr(13) & "Сумма H= " & numH
End Sub
Function proverka(tyG As Integer, tyH As Integer, numG As Integer, numH)
check = False
If tyG > 0 Then
check = True
Else
numG = numG + tyG
End If
If tyH > 0 Then
check = True
Else
numH = numH + tyH
End If
End Function
