Excel'de VBA Kullanarak Verileri Nasıl Yönetebilirim?
Makrolar VBA kodunu, aksi takdirde değiştirilmesi çok zaman alacak büyük veri setlerini yönetmek için işler. Örneğin, VBA ile belirlenen kriterleri karşılayan belirli alanları otomatik olarak formatlamak için bir makro oluşturabilirsiniz.
Aşağıda, Excel'de kullanılan bir VBA komut dosyasının bir örneği verilmiştir:
Alt ConfigureLogic ()
Dim qstEntries
Dim dqstEntries
Dim qstCnt, dqstCnt
qstEntries = Aralık ("QualifiedEntry"). Sayı.
qst = qstEntries - WorksheetFunction.CountIf (Aralık ("QualifiedEntry"), "")
ReDim QualifiedEntryText (qst)
'MsgBox (qst)
dqstEntries = Aralık ("DisQualifiedEntry"). Sayı
dqst = dqstEntries - WorksheetFunction.CountIf (Aralık ("DisQualifiedEntry"), "")
ReDim DiskalifiyeEntryText (dqst)
'MsgBox (dqst)
QstCnt için = 1 ila qst
QualifiedEntryText (qstCnt) = ThisWorkbook.Worksheets ("Qualifiers") Aralık ("J" ve 8 + qstCnt) .value
'MsgBox (QualifiedEntryText (qstCnt))
logging ("Yapılandırılmış Nitelikli Giriş girişi #" & qstCnt & "olarak {" & QualifiedEntryText (qstCnt) & "}")
Sonraki
DqstCnt = 1 için dqst
DisqualifiedEntryText (dqstCnt) = ThisWorkbook.Worksheets ("Qualifiers") Aralık ("M" ve 8 + dqstCnt) .value
'MsgBox (DisqualifiedEntryText (dqstCnt))
logging ("Yapılandırılmış DisQualified Giriş girişi #" & qstCnt & "olarak {" & DisqualifiedEntryText (dqstCnt) & "}")
Sonraki
includeEntry = ThisWorkbook.Worksheets ("Elemeleri"). Aralığı ("IncludeSibling"). değer
'MsgBox (includeEntry)
günlüğe kaydetme ("Aramaya dahil girişler -" & includeEntry)
Son Alt
Bir Elektronik Tablodaki Girdileri Çözümleme ve Yönetme
VBA'yı veri analizi amacıyla kullanmak için, Geliştirici aracı için Excel'deki ayarları kontrol etmeniz gerekir. Bunu bulmak için Excel Şeridini bulun ve Geliştirici sekmesini arayın. Görüntülenmezse, Excel Ayarları menüsünde etkinleştirmeniz gerekir.Sonra, yeni bir çalışma sayfası oluşturun ve "Niteleyiciler" olarak adlandırın. Seçimleri nitelendiren tüm şeyleri kontrol etmek için bu sayfayı kullanacağız.
Ardından, sayfadaki niteleyicileri koda göre ayarlayın. Manuel olarak girilmelidir; kes ve yapıştır çalışmaz.
BuWorkbook.Worksheets ("Qualifiers"). Range ("J" ve 8 + qstCnt) .value
Aralığı Bulma ve Dizi Oluşturma
Yukarıdaki fonksiyondaki aralık J9 hücresidir. Range işlevi 8 değerine sahiptir; ancak, asıl aralık 9’dur:QstCnt için = 1 ila qst
Yukarıdaki ifade 0'da değil, 1'de başlar. Bu nedenle, liste 9'da başlar. Bu durumda, not (qstCnt = 1).
Niteleyiciler çalışma sayfasındaki girişlerden bir dizi oluşturmak için, J9-J13 hücrelerine rastgele sözcükler yerleştirin. Satırlar tamamlandıktan sonra, Excel'de veri bulma ve düzenleme ile ileriye gidebiliriz.
Özel Alt Sayı Sayfaları ()Dim sheetcount
Çalışma Sayfası Olarak Dim WS
sayfa sayısı = 0
günlüğe kaydetme ("***** Start Scrub *********")
ThisWorkbook.Worksheets İçindeki Her WS İçin
Sayfa Sayısı = Sayfa Sayısı + 1
Eğer WS.Name = "Selected" ise
'tarih ve saati "Günlüğe kaydetme" adlı sayfaya kaydetmeniz gerekiyor
ActionCnt = ActionCnt + 1
günlüğe kaydetme ("Çağrı sayfası:" & WS.Name)
scrubsheet (sayfa sayısı)
Başka
ActionCnt = ActionCnt + 1
günlüğe kaydetme ("Sayfa üzerine atlandı:" & WS.Name)
Bittiğinde
Sonraki WS
'MsgBox ("bitiş")
ActionCnt = ActionCnt + 1
günlüğe kaydetme ("**** Scrub DONE!")
Application.ScreenUpdating = Doğru
Son Alt
Çalışan bir sekme sayacı örneği var.
Dim sheetcount
Çalışma Sayfası Olarak Dim WS
sayfa sayısı = 0
günlüğe kaydetme ("***** Start Scrub *********")
ThisWorkbook.Worksheets İçindeki Her WS İçin
Sayfa Sayısı = Sayfa Sayısı + 1
Sayfa sayımını başlattıktan sonra, sayacı yeniden başlatmak için 0 olarak ayarlayın.
Logging (), seçimleri denetlemek için tüm eylemleri izleyen başka bir alt programdır.
Bir sonraki For döngüsü, Aktif Çalışma Kitabını sayım için ayarlar. WS, başlangıç değeri ve ThisWorkbook'tur. Çalışma sayfaları kitaptaki etkin sekmedir. Çalışma kitabını adlandırmadığımızdan, bu modül herhangi bir çalışma kitabında çalışacaktır. Birden fazla çalışma kitabında çalışıyorsanız ve yanlış olanı etkinleştirdiyseniz, üzerinde çalışmaya çalışacaktır. Hatalardan kaçınmak için, belirli çalışma kitabınızı adlandırmak için önlem alın veya bir seferde yalnızca bir tane üzerinde çalışın.
Döngü her ateşlediğinde, sekme sayısını takip etmek için sayfa sayısına bir değişken ekler. Sonra şuraya geçiyoruz:
Eğer WS.Name = "Selected" ise'tarih ve saati "Günlüğe kaydetme" adlı sayfaya kaydetmeniz gerekiyor
ActionCnt = ActionCnt + 1
günlüğe kaydetme ("Çağrı sayfası:" & WS.Name)
scrubsheet (sayfa sayısı)
Başka
ActionCnt = ActionCnt + 1
günlüğe kaydetme ("Sayfa üzerine atlandı:" & WS.Name)
Bittiğinde
Burada, Seçilmiş sekmesini arıyoruz.
WS değişkeni Seçili değerine eşitse, onu günlüğe kaydeder ve alt rutin ovalama sayfasını ateşleriz. WS değişkeni Seçili'ye eşit değilse, bu sayfanın atlandığı ve işlemin sayıldığı günlüğe kaydedilir. Yukarıdaki kod, belirli bir sekmenin sayısının sayılması ve bulunmasının bir örneğidir.
Aşağıdaki liste, verileri değiştirmek için kullanılabilecek farklı yöntemlerin hepsidir!
İyi eğlenceler!
Çalışma Kitabındaki Sayfa Sayısını Sayma
Dim TABThisWorkbook.Worksheets İçindeki Her TAB İçin
'burada rutin bazı
Sonraki
Çalışma Sayfasında Son Satırı, Sütunu veya Hücreyi Bulma
Dim hücre sayısıcellcount = Hücreler (ThisWorkbook.Worksheets ("çalışma sayfası"). Rows.Count, 1) .End (xlUp) .Row
Gelişmiş Ölçütleri Kullanarak Filtrele
Aralık ("A2: Z99") Sırala anahtar1: = Aralık ("A5"), order1: = xlAscending, Başlık: = xlNo
Sütuna Otomatik Sığdırma Özelliği Uygula
Sütunlar. ( "A: A") EntireColumn.AutoFit
Başka Bir Çalışma Sayfasından Değer Alma
loş değernewvalue = ThisWorkbook.Worksheets ("çalışma sayfası"). Aralık ("F1"). değer
Çalışma Sayfasına Sütun Ekleme
Loş Satır, SütunHücreler (Satır, Sütun) .EntireColumn.Select
Selection.Insert
Çalışma Sayfasına Birden Çok Sütun Ekleme
Dim insertCntLoş Satır, Sütun
İnsertCnt için = 1 N
ThisWorkbook.Worksheets ( "çalışma sayfası"). Seçiniz
Hücreler (Satır, Sütun) .EntireColumn.Select
Selection.Insert
Sonraki
Belirli Bir Sayfaya Adlandırılmış Bir Aralık Ekleme
BuWorkbook.Worksheets ("çalışma sayfası") Adlar.Add Adı: = "Durum", RefersToR1C1: = "= çalışma sayfası! C2"
Çalışma Sayfasına Tüm Satırı Ekleme
Loş Satır, SütunHücreler (Satır, Sütun) .EntireRow.Select
Selection.Insert
Yapıştırmak İçin Tüm Satırı Kopyala
ActiveSheet.Range ( "A1"). EntireRow.SelectSelection.Copy
Tüm Satırı Sil
ActiveSheet.Range ( "A1"). EntireRow.SelectSelection.Delete
Özel bir Sayfa Seçin
ThisWorkbook.Worksheets ( "çalışma sayfası"). Seçiniz
Bir Aralığın Değerlerini Karşılaştırın
İlk önce dimLoş Mantık
Logictest = "bir kelime veya değer"
Eğer (Range (firstrange) .value = Logictest) ise
'burada rutin bazı
Bittiğinde
Resim: © Microsoft.