Через раз при копировании текста макроса в другую программу, выводит "гречку". Смущает то, что это происходит не постоянно, а от разу... Есть способ это побороть?
Код |
---|
Sub macro4()
'tablica jednowymiarowa zawieraj¹ca 10 komórek
Dim tablica(1 To 10) As Single
For i = 1 To 10
tablica(i) = Math.Round(Math.Rnd(10), 2) 'Îêðóãëÿåì çíà÷åíèÿ äî äâóõ çíàêîâ ïîñëå çàïÿòîé
Worksheets("Arkuszl").Range("C" & i) = "Liczba nr. " & i & ")=" & tablica(i)
Next i
Max_ind = 1 'Çíà÷åíèå èíäåêñà ìàêñèìàëüíîãî ýëåìååíòà ìàññèâà
Min_ind = 1 'Çíà÷åíèå èíäåêñà ìèíèìàëüíîãî ýëåìååíòà ìàññèâà
Max_val = tablica(1) 'Ïåðâîå ïðèáëèæåíèå ìàêñèìóì - ïåðâûé ýëåìåíò ìàññèâà
Min_val = tablica(1) 'Ïåðâîå ïðèáëèæåíèå ìèíèìóì - ïåðâûé ýëåìåíò ìàññèâà
'Ìàññèâ ïðîñìàòðèâàåì ñî âòîðîãî ýëåìåíòà
For i = 2 To 10
If Max_val < tablica(i) Then
Max_val = tablica(i)
Max_ind = i
End If
If Min_val > tablica(i) Then
Min_val = tablica(i)
Min_ind = i
End If
Next i
'Âûâîäèì íà ñòðàíèöó çíà÷åíèå ìàêñèìóìà è ìèíèìóìà è åãî èíäåêñ
Worksheets("Arkuszl").Range("C11") = "Min val." & Min_ind & " = " & Min_val
Worksheets("Arkuszl").Range("C12") = "Max val." & Max_ind & " = " & Max_val
'Ñîðòèðîâêà ìàññèâà
For j = 1 To 10
'Ïðèðàâíèâàåì ïåðâûé ýëåìåíò èç îñòàâøåéñÿ ïîñëåäîâàòåëüíîñòè ìèíèìàëüíîìó, è èíäåêñ
Min_val = tablica(j)
Min_ind = j
For i = j + 1 To 10 'Ïðîñìàòðèâàåì îñòàâøèóþñÿ ïîñëåäîâàòåëüíîñòü
'Íàõîäèì ìàêñèìàëüíûé ýëåìåíò è çàïîìèíàåì åãî èíäåêñ
If Min_val > tablica(i) Then
Min_val = tablica(i)
Min_ind = i
End If
Next i
'Ìåíÿåì ýëåìåíòû ìâññèâà ìåñòàìè è âûâîäèì íà ñòðàíèöó
p = tablica(j)
tablica(j) = Min_val
tablica(Min_ind) = p
Worksheets("Arkuszl").Range("C" & (j + 15)) = "Liczba nr. " & j & ")=" & tablica(j)
Next j
End Sub
|