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

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
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
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 iEnd FunctionSub 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 iEnd 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 FunctionSub 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 iEnd 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				
XL2000

Upozornění: Tento článek je přeložený automaticky

Vlastnosti

ID článku: 213818 - Poslední kontrola: 12/05/2015 12:20:23 - Revize: 3.5

Microsoft Excel 2000 Standard Edition

  • kbnosurvey kbarchive kbmt kbdtacode kbhowto kbinfo kbprogramming KB213818 KbMtcs
Váš názor