XL2000: Jak používat makro jazyka do pole seřadit v aplikaci Excel

Překlady článku Překlady článku
ID článku: 213818 - Produkty, které se vztahují k tomuto článku.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

V aplikaci Excel 2000 je žádné přímé způsob řazení pole hodnot s Microsoft Visual Basic pro Applications makra nebo procedury. Tento článek popisuje dva různé algoritmy, které můžete použít k řazení matice: Výběr řazení a Bublinový seřadit.

Další informace

Ukázky programů jsou společností Microsoft poskytovány pouze pro ilustraci bez žádné záruky výslovně uvedené ani předpokládané, včetně předpokládaných záruk vztahujících se k obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že uživatel je obeznámen s programovacím jazykem, který je předmětem ukázky, a s nástroji použitými pro vytvoření a ladění skriptu. Pracovníci technické podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu, nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků uživatele.
Pokud máte zkušenosti s programováním omezený, můžete kontaktovat partnera s certifikátem Microsoft nebo služby Advisory. Na další informace těchto webech společnosti Microsoft:

Microsoft Certified Partner - https://partner.microsoft.com/global/30000104

Služba Microsoft zpravodaje - http://support.microsoft.com/gp/advisoryservice

Další informace o možnostech podpory, které jsou k dispozici a o možnostech kontaktování společnosti Microsoft na následujícím webu společnosti Microsoft: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Metoda 1: Výběr řazení

Ačkoli je seřadit výběr mezi snadnější seřadí program, zdůrazňuje spustit pomaleji než bublinový seřadit na velké matice data.

Výběr řazení z matice s mezi 1 n počet prvků provádět vyhledejte největší prvek z 1 n. Pokud není prvek n, výměnu největší prvek s n prvek. Potom vyhledejte největší prvek z 1 n-1 a pokud není prvek n-1, výměnu největší prvek s prvek n-1. V dalším vyhledejte největší prvek z 1 n 2 a, pokud není prvek n-2, exchange největší prvek s prvek n-2 atd.

Následuje příklad výběr řazení s variant jazyka typ pole.
  1. Zadejte nebo vložte následující modul list: Option Base 1
    Function SelectionSort(TempArray As Variant)
        Dim MaxVal As Variant
        Dim MaxIndex As Integer
        Dim i, j As Integer
    
        ' Step through the elements in the array starting with the
        ' last element in the array.
        For i = UBound(TempArray) To 1 Step -1
    
            ' Set MaxVal to the element in the array and save the
            ' index of this element as MaxIndex.
            MaxVal = TempArray(i)
            MaxIndex = i
    
            ' Loop through the remaining elements to see if any is
            ' larger than MaxVal. If it is then set this element
            ' to be the new MaxVal.
            For j = 1 To i
                If TempArray(j) > MaxVal Then
                    MaxVal = TempArray(j)
                    MaxIndex = j
                End If
            Next j
    
            ' If the index of the largest element is not i, then
            ' exchange this element with element i.
            If MaxIndex < i Then
                TempArray(MaxIndex) = TempArray(i)
                TempArray(i) = MaxVal
            End If
        Next i
    
    End Function
    
    Sub SelectionSortMyArray()
        Dim TheArray As Variant
    
        ' Create the array.
        TheArray = Array(15, 8, 11, 7, 33, 4, 46, 19, 20, 27, 43, 25, 36)
    
        ' Sort the Array and display the values in order.
        SelectionSort TheArray
        For i = 1 To UBound(TheArray)
            MsgBox TheArray(i)
        Next i
    
    End Sub
    					
  2. Spustit makro, klepněte v nabídce Nástroje, přejděte na příkaz makro a potom klepněte na příkaz makra.
  3. Vyberte makro SelectionSortMyArray a potom klepněte na příkaz Spustit.

Metoda 2: Seřadit bublinový

Bublinový seřadit je složitější než výběr řazení program, ale tendenci spuštění rychleji a efektivněji s větší matice data.

K provedení řazení bublinový vyhodnotit 1 v matici, kde každý prvek s jeden po ji porovnat prvky n-1 (jinými slovy, prvek 1 je porovnána s prvek 2, 2 prvek je porovnána s prvek 3 atd.). Pokud prvek je větší než prvek po jej, jsou vyměňovány tyto dva prvky. Tento proces pokračovat, dokud nejsou žádné další výměn prvky. Následuje příklad seřadit bublinový s variant jazyka typ pole.
  1. Zadejte nebo vložte následující kód v modulu list: Option Base 1
    Function BubbleSort(TempArray As Variant)
        Dim Temp As Variant
        Dim i As Integer
        Dim NoExchanges As Integer
    
        ' Loop until no more "exchanges" are made.
        Do
            NoExchanges = True
    
            ' Loop through each element in the array.
            For i = 1 To UBound(TempArray) - 1
    
                ' If the element is greater than the element
                ' following it, exchange the two elements.
                If TempArray(i) > TempArray(i + 1) Then
                    NoExchanges = False
                    Temp = TempArray(i)
                    TempArray(i) = TempArray(i + 1)
                    TempArray(i + 1) = Temp
                End If
            Next i
        Loop While Not (NoExchanges)
    
    End Function
    
    Sub BubbleSortMyArray()
        Dim TheArray As Variant
    
        ' Create the array.
        TheArray = Array(15, 8, 11, 7, 33, 4, 46, 19, 20, 27, 43, 25, 36)
    
        ' Sort the Array and display the values in order.
        BubbleSort TheArray
        For i = 1 To UBound(TheArray)
            MsgBox TheArray(i)
        Next i
    End Sub
    					
  2. Spustit makro, klepněte v nabídce Nástroje, přejděte na příkaz makro a potom klepněte na příkaz makra.
  3. Vyberte makro SelectionSortMyArray a potom klepněte na příkaz Spustit.
Poznámka: oba tyto příklady seřadit ve vzestupném pořadí. Provést výběr seřadit v sestupném pořadí změnit ">"do"<" v následující řádekFunkce SelectionSort:
If TempArray(j) > MaxVal Then
				
provádět bublinový seřadit v sestupném pořadí změnit ">" k "<" v následující řádekFunkce BubbleSort:
If TempArray(i) > TempArray(i + 1) Then
				

Vlastnosti

ID článku: 213818 - Poslední aktualizace: 23. listopadu 2006 - Revize: 3.5
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Excel 2000 Standard Edition
Klíčová slova: 
kbmt kbdtacode kbhowto kbinfo kbprogramming KB213818 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:213818

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com