Excel'de VBA Kullanarak Verileri Nasıl Yönetebilirim?

Microsoft Excel, veri işleme için kullanılabilecek güçlü bir araçtır. Yazılımdan en iyi şekilde yararlanmak için VBA kullanmanız gerekir. Uygulamalar için Visual Basic veya VBA, Excel kullanıcılarına veri işleme ve analiz için zaman kazandıran güçlü özel fonksiyonlar olan makrolar oluşturma yeteneği verir.

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 TAB

ThisWorkbook.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ğer

newvalue = ThisWorkbook.Worksheets ("çalışma sayfası"). Aralık ("F1"). değer

Çalışma Sayfasına Sütun Ekleme

 Loş Satır, Sütun

Hücreler (Satır, Sütun) .EntireColumn.Select

Selection.Insert

Çalışma Sayfasına Birden Çok Sütun Ekleme

 Dim insertCnt

Loş 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ütun

Hücreler (Satır, Sütun) .EntireRow.Select

Selection.Insert

Yapıştırmak İçin Tüm Satırı Kopyala

 ActiveSheet.Range ( "A1"). EntireRow.Select

Selection.Copy

Tüm Satırı Sil

 ActiveSheet.Range ( "A1"). EntireRow.Select

Selection.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 dim

Loş Mantık

Logictest = "bir kelime veya değer"

Eğer (Range (firstrange) .value = Logictest) ise

'burada rutin bazı

Bittiğinde

Resim: © Microsoft.

Önceki Makale Sonraki Makale

En Ipuçları