XL2000: nasıl Excel'de sıralama dizileri için bir Visual Basic makrosu kullanma

Makale çevirileri Makale çevirileri
Makale numarası: 213818 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft Excel 2000'de, <a1>Değer</a1> ile bir Microsoft Visual Basic for Applications makrosu veya olay yordamı dizisi sıralama doğrudan bir yöntem yoktur. Bu makalede, diziler sıralamak için kullanabileceğiniz iki farklı algoritmalarına anlatılmaktadır: Seçimi sıralama ve Kabarcık sıralama.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; satılabilirlik ve/veya belirli bir amaca uygunluk da dahil, ancak bununla sınırlı olmamak kaydıyla, örtülü veya açık garanti vermez. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek uzmanları, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.
Programlama deneyiminiz kısıtlıysa, bir Microsoft Sertifikalı İş Ortağı'na veya Microsoft Danışmanlık Hizmetleri'ne başvurabilirsiniz. Daha fazla bilgi için şu Microsoft Web sitelerini ziyaret edin:

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

Microsoft danışma belgesi Hizmetleri - http://support.microsoft.com/gp/advisoryservice

Kullanılabilir destek seçenekleri ve Microsoft'a başvurma konusunda daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin: http://support.microsoft.com/default.aspx?scid=fh;EN-US;CNTACTMS

Yöntem 1: Seçimi Sırala

Bir seçim sıralama arasında kolay program türlerdeki olsa da, büyük veri dizileri kabarcık sıralama daha yavaş çalışmasına benzerlik gösterir.

Bir seçim Sort, n sayıda öğe 1 arasında bir dizi ile gerçekleştirmek için <a0></a0>, n için en büyük öğe 1'i bulun. Bu öğe n değilse, en büyük öğe n öğeyle değişimi. Sonra n-1 için'en büyük öğe 1 bulun ve bu öğe n-1 değilse, n-1 öğesi olan en büyük öğe exchange yazabilirsiniz. Sonra n-2'ye 1 en büyük öğe bulun ve bu öğe n-2 değilse, öğe n-2'olan en büyük öğe exchange vb..

Bir seçim sıralama ile bir Visual Basic Variant türü dizi bir örnek aşağıdadır.
  1. Bir modül sayfasına aşağıdaki yapıştırın veya yazın: seçenek Bankası 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. Makroyu çalıştırmak için Araçlar menüsünü tıklatın, sonra da makro ' nun üzerine gelin ve makrolar ' ı tıklatın.
  3. SelectionSortMyArray makroyu seçin ve sonra da <a2>Çalıştır</a2>'ı tıklatın.

Yöntem 2: Kabarcık Sırala

Bir kabarcık Sırala'den <a2>Seçim</a2> sıralama program daha zor olsa da, büyük veri dizileri ile daha hızlı ve verimli çalışması için benzerlik gösterir.

Bir kabarcık sıralama yapmak için <a0></a0>, burada, her öğe, sonra bir karşılaştırma dizideki n-1 öğelerin 1 değerlendir (diğer bir deyişle, <a1>öğe</a1> 1, 2 öğesine karşılaştırılır, <a1>öğe</a1> 2, <a1>öğe</a1> 3 vb. için karşılaştırılır). Öğenin sonra öğeyi büyükse, bu iki öğe değiştirilir. Daha fazla hiçbir alışverişleri öğelerinin kadar bu işleme devam edin. Bir kabarcık sıralama ile bir Visual Basic Variant türü dizi bir örnek aşağıdadır.
  1. Bir modül sayfasına aşağıdaki kodu yapıştırın veya yazın: seçenek Bankası 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. Makroyu çalıştırmak için Araçlar menüsünü tıklatın, sonra da makro ' nun üzerine gelin ve makrolar ' ı tıklatın.
  3. SelectionSortMyArray makroyu seçin ve sonra da <a2>Çalıştır</a2>'ı tıklatın.
Not: Bu örneklerden her ikisini de artan düzende sıralama. Bir seçim sıralama azalan şekilde gerçekleştirmek için <a0></a0>, değiştirmek ">"çok"<" satırına aşağıdakiSelectionSort işlevi:
If TempArray(j) > MaxVal Then
				
bir kabarcık sıralama azalan şekilde gerçekleştirmek için <a0></a0>, değiştirmek ">" için bir "<" satırına aşağıdakiBubbleSort işlevi:
If TempArray(i) > TempArray(i + 1) Then
				

Özellikler

Makale numarası: 213818 - Last Review: 23 Kasım 2006 Perşembe - Gözden geçirme: 3.5
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbdtacode kbhowto kbinfo kbprogramming KB213818 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:213818

Geri Bildirim Ver

 

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