XL97: Olan hücreleri silmek nasıl bir for each... Next durdurulana dön

Makale çevirileri Makale çevirileri
Makale numarası: 159915 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Bu makalenin Microsoft Excel 2002 sürümü için bkz: 291300.
Bu makalenin Microsoft Excel 2000 sürümü için bkz: 213544.
Bu makalenin Microsoft Excel 98 sürümü için bkz: 184378.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Microsoft Excel 97, Microsoft Excel'in önceki sürümlerinden farklı biçimde bir for each... Next döngüsünde hücreleri siler.

Bu makale, farklılıkları açıklar ve bir Visual Basic döngü hücreleri silmek verilmektedir Applications makro örneği sağlar.

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 Partner - https://partner.microsoft.com/global/30000104 Onaylandı

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

Örnek veri

Bu makaledeki makro kullanmak için aşağıdaki örnek verileri bir çalışma sayfasına yazın:
   A1:  a  B1:  1
   A2:  b  B2:  2
   A3:  x  B3:  3
   A4:  x  B4:  4
   A5:  c  B5:  5
   A6:  x  B6:  6
   A7:  d  B7:  7
   A8:  x  B8:  8
   A9:  x  B9:  9
   A10: e  B10: 10
				

Örnek makro

Yeni bir makro modüle aşağıdaki makroyu yazın:
   Sub DeleteCells()
 
       'Loop through cells A1:A10 and delete cells that contain an "x."
       For Each c in Range("A1:A10")
           If c = "x" Then c.EntireRow.Delete
       Next
 
   End Sub
				

Microsoft Excel 97'de <a1>örnek</a1> makronun davranışı

Microsoft Excel 97'de DeleteCells makroyu çalıştırdığınızda, yalnızca 3, 6 ve 8 satırlar silinir. Satır, 4 ve 9, A sütununda "x" içeren, ancak makro satırların silinmesine neden olmaz. Microsoft Excel 97'de makro sonuçları şunlardır:
   A1: a   B1: 1
   A2: b   B2: 2
   A3: x   B3: 4
   A4: c   B4: 5
   A5: d   B5: 7
   A6: x   B6: 9
   A7: e   B7: 10
				
, Microsoft Excel, satır 3 siler, tüm hücreleri bir satır taşır. Örneğin, hücre A3, A4 hücrenin içindekiler olarak varsayar, <a1>hücre</a1> A4, A5 hücresi vb. içeriğini varsayar. For each... Next döngü hücre değerlendirir sonra bir sonraki hücreye değerlendirir; hücre sonrakiler her kaydırılır, bu nedenle, kullanıcılar tarafından döngü atlanabilir.

Microsoft Excel 5.0 ve 7.0 Örnek makroda davranışı

Microsoft Excel 5.0 ve 7.0 DeleteCells makroyu çalıştırdığınızda, makroyu bir "x." içeren tüm satırları siler. Microsoft Excel 5.0 veya 7.0 makroda sonuçları şunlardır:
   A1: a   B1: 1
   A2: b   B2: 2
   A3: c   B3: 5
   A4: d   B4: 7
   A5: e   B5: 10
				
satır 3'de silinir, bir satır; tüm hücreleri taşıma ve hücre A3, A4 hücrenin içindekiler olarak varsayar, <a1>hücre</a1> A4, A5 hücresi vb. içeriğini varsayar.

Hücre içinde Microsoft Excel 5.0 ve 7.0 for each... Next döngü değerlendirir, döngü içinde silinirse, onunla ancak Microsoft Excel 97'de döngü davranışını farklı olarak, bu hücre reevaluates; bu nedenle, hücreleri değil atlanır.

Önerilen yöntem, bir döngü hücreleri silmek için kullanma

Aşağıdaki makro, bir döngü hücreleri silmek için kullanmak istediğiniz zaman kullanın:
   Sub DeleteCells2()
 
       Dim rng As Range
       Dim i As Integer, counter As Integer
 
       'Set the range to evaluate to rng.
       Set rng = Range("A1:A10")
 
       'initialize i to 1
       i = 1
 
       'Loop for a count of 1 to the number of rows
       'in the range that you want to evaluate.
       For counter = 1 To rng.Rows.Count
 
           'If cell i in the range contains an "x",
           'delete the row.
           'Else increment i
           If rng.Cells(i) = "x" Then
               rng.Cells(i).EntireRow.Delete
           Else
               i = i + 1
           End If
 
       Next
 
   End Sub
				
Microsoft Excel 97 ve önceki sürümlerinde, bu makro sonuçları şunlardır:
   A1: a   B1: 1
   A2: b   B2: 2
   A3: c   B3: 5
   A4: d   B4: 7
   A5: e   B5: 10
				

Ek bir döngü hücreleri silmek için kullanma yöntemi

Yukarıda gösterilen yöntemine alternatif bir yöntem budur. Bu, aynı sonucu üretir.
   Sub DeleteCells3()
 
       Dim rng As Range, i As Integer
 
       'Set the range to evaluate to rng.
       Set rng = Range("A1:A10")
 
       'Loop backwards through the rows
       'in the range that you want to evaluate.
       For i = rng.Rows.Count To 1 Step -1
 
           'If cell i in the range contains an "x", delete the entire row.
           If rng.Cells(i).Value = "x" Then rng.Cells(i).EntireRow.Delete
       Next
 
   End Sub
				

Referanslar

Bir makroda döngü hakkında daha fazla bilgi için uygulamalar yardımına Visual Basic'te <a2>Dizin</a2> sekmesini tıklatın, aşağıdaki metni yazın.
döngü
ve "Döngüsü boyunca kodu" konuya dönmek için seçili metni çift tıklatın.

Özellikler

Makale numarası: 159915 - Last Review: 4 Şubat 2014 Salı - Gözden geçirme: 2.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 97 Standard Edition
Anahtar Kelimeler: 
kbnosurvey kbarchive kbmt kbdtacode kbprogramming KB159915 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:159915

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