Страницы: 1
RSS
Искажение кодировки при копировании текста макроса из окна VBA, 'Çíà÷åíèå èíäåêñà ìàêñèìàëüíîãî ýëåìååíòà ìàññèâà
 
Через раз при копировании текста макроса в другую программу, выводит "гречку". Смущает то, что это происходит не постоянно, а от разу... Есть способ это побороть?
Код
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
 
Включить рус. раскл. клав., после копировать.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Кто-то, помнится, давай ссылку на решение проблемы, но у меня оно не помогло
Подписался на тему, — вдруг кто вспомнит, где там что в реестре менять
(надо подменять кодовую страницу 1252 на 1251, а где конкретно в реестре - не знаю. я менял в паре мест, но этого оказалось недостаточно)
Страницы: 1
Наверх