Ghostman Opublikowano 9 Lutego 2011 Zgłoś Opublikowano 9 Lutego 2011 (edytowane) Siemka mam taki problem jest sobie kawałek kodu ze zmiennymi zadeklarowanymi globalnie Sub przydzielanie_Click() r1 = ratio1 * 100r2 = ratio2 * 100r3 = ratio3 * 100r4 = ratio4 * 100 For m = 1 To 4 arr(1) = r1 arr(2) = r2 arr(3) = r3 arr(4) = r4 Call Sort(arr)If arr(4) = r1 Then Call CommandButton1_Click r1 = 0 Else If arr(4) = r2 Then Call CommandButton2_Click r2 = 0 Else If arr(4) = r3 Then Call CommandButton3_Click r3 = 0 Else If arr(4) = r4 Then Call CommandButton4_Click r4 = 0 Else MsgBox ("błąd") End If End If End IfEnd If Next mEnd Sub------------------------------------------------------------Sub Sort(arr() As Integer) Dim Temp As Double Dim v As Integer Dim x As Integer For x = 2 To UBound(arr) Temp = arr(x) For v = x - 1 To 1 Step -1 If (arr(v) <= Temp) Then GoTo 10 arr(v + 1) = arr(v) Next v v = 010 arr(v + 1) = Temp Next x End Sub Procedura sort działa mi dobrze, ale procedura przydzielanie_Click() nie działa dobrze. Mianowicie jak wykona się pierwsze sortowanie to ify poprawnie znajdą dla moich danych, że arr(4) = r4, potem dobrze znajdą, że arr(4) = r2, a po kolejnym sortowaniu arr(4) = r1 i mimo, że debuger pokazuje, że arr(4) = 24 i r1 = 24 to mi przeskakuje do elsa. I nie mam pojęcia co z tym zrobić. Ktoś może wiedzieć ocb? Ewentualnie ktoś wie jak zamienić te ify na switch case? Ale czy to pomoże? Edit\\ zrobiłem switch case i działa poprawnie, natomiast jeśli ktoś może wiedzieć to chętnie też bym się dowiedział dlaczego w formie ifów nie działa poprawnie Edytowane 9 Lutego 2011 przez Ghostman Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...