VBA ile Excel Çalışma Sayfanızda Nasıl Döngü Yapılır?

Şimdi paylaş:

Bazen bir çalışma sayfasını satır satır okumak ve ondan seçmeli olarak veri almak yararlıdır. Aşağıdaki örnekte bunun nasıl yapılacağı gösterilmektedir.

Makale, okuyucunun Geliştirici şeridinin görüntülendiğini ve VBA Düzenleyicisine aşina olduğunu varsayar. Değilse, lütfen Google "Excel Geliştirici Sekmesi" veya "Excel Kod Penceresi".

Aşağıdaki örnek, her bir e-posta adresi satırını inceleyerek ve bunları tek bir adres satırında birleştirerek verileri değiştirir. Excel yerleşik Transpose işlevlerine sahipken, kodumuzla bazı belirli adresleri hariç tutmayı ve sınırlayıcılar eklemeyi amaçlıyoruz.

Uygulamamızın yalnızca bir sayfaya ihtiyacı var. Aşağıdaki bilgileri A1 hücresine kopyalayın:

E-posta
tcruise@paramount.com
julia.R@disney.com
Jules.dassin@gaumont.co.fr
EnricoFellini@cinecitta.co.it
marymontrary@bedlam.org.uk

Kodu başlatmak için forma bir düğme yerleştirin.Kodu Başlatmak İçin Forma Bir Düğme Yerleştirin

Diyelim ki sadece beş tane değil, yüzlerce e-posta var; her birine aynı mesajı ve senaryomuzun aynı kopyasını göndermek istiyoruz. Bunu yapmanın birkaç yolu var, en önemlisi VBA kodundan Outlook gibi bir e-posta göndericisini çağırmak. Ancak bu alıştırma iki amaca hizmet ediyor:

  • Bir çalışma sayfasında nasıl kolayca dolaşılacağını gösterin;
  • Excel'in her satırı inceleme ve üzerinde işlem yapma yeteneğini vurgulayın.

VBA Kodu

VBA kodu, e-postanın alıcı alanına tek seferde yapıştırılabilmesi için her birinin arkasına noktalı virgül ekleyerek tüm adresleri birleştirecektir. Koddan, satırları inceledikten sonra Fransızca olanları hariç tutacağını not edeceksiniz.

Bir modül yerleştirin ve aşağıdakileri girin:

Option Explicit
Dim strEmail As String
Dim strAll As String

Sub Main()
    strAll = ""
    Range("C2") = strAll     'clear previous program results
    Sheets("Sheet1").Select
    Range("A2").Select
    Do While ActiveCell > ""      'loop until row 7
        strEmail = ActiveCell
        If Right(strEmail, 2) <> "fr" Then      'exclude France
            strAll = strAll & strEmail & ";"
        End If
        Range("A" & ActiveCell.Row + 1).Select     'move on a row in the SAME column
    Loop
    Range("C2") = strAll
End Sub

Kod, aktif hücreyi A sütununda tutar, yalnızca satırlar hareket eder. Arka arkaya başka bir yerde bilgilere başvurmak için şunları kullanırdık:

Variable = Activecell.offset(offset rows, offset columns)

Örneğin, aktif satırdaki B sütunundan bir değer almak için kod şu şekilde olacaktır: Activecell.offset(0, 1). A2'teyken A3'nin değerini almak için şunu okuruz: Activecell.offset(-1, 0).

Kodunuzu test etmek için düğmeyi "Ana" makroya atayın.

Bazı İnternet Servis Sağlayıcıları, spam önleme önlemi olarak, tek seferde gönderebileceğiniz e-posta sayısını sınırlayabilir. Bu yöntemi kullanırsanız, tek seferde yüzlerce e-posta göndermeden önce onlarla kontrol etmek muhtemelen en iyisidir.

Excel Dosya Bozulmasını Yönetme

Excel Dosya BozulmasıZaman zaman, Excel'in kendisinin bile kurtaramayacağı derecede bozulmuş çalışma kitaplarıyla karşılaşırız. Bu, uzmanlar da dahil olmak üzere çoğu Excel kullanıcısı için bir felakettir. Ancak, elinizde etkili bir kurtarma aracı varsa, çalışma kitaplarınızı geri yükleyebilirsiniz. hasarlı xlsx dosyaları kolay ve hızlı.

Yazar Tanıtımı:

Felix Hooker, veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. onarım rar rüşvet ve sql kurtarma yazılımı ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com

Şimdi paylaş:

Yoruma kapalı.