VBA ile Excel Makrolarını Programlarken Yapabileceğiniz 4 Hata

  • Peter Holmes
  • 0
  • 5152
  • 814
reklâm

Microsoft Excel zaten çok yetenekli bir veri analizi aracıdır, ancak tekrarlayan görevleri makrolarla otomatikleştirme becerisine sahiptir VBA Komut Dosyalarını Kullanarak Bir Excel Elektronik Tablodan E-posta Gönderme VBA Komut Dosyalarını Kullanarak Bir E-Posta Gönderme VBA Komut Dosyalarını Kullanarak E-posta Gönderme Collaboration Data Objects (CDO) ve VBA komut dosyalarını kullanarak Excel'den otomatik e-postalar ekleyin. (VBA) içine basit kod yazarak, bu çok daha güçlü. Ancak, yanlış kullanıldığında, VBA bir çok soruna neden olabilir..

Programcı olmasanız bile, VBA, e-tablolarınıza gerçekten etkileyici bir işlevsellik ekleyebilmenizi sağlayan basit işlevler sunar;!

İster VBA gurubu olun, ister Excel'de gösterge tabloları oluşturur Bu Google E-Tablo Ana Sınıfında Kendi Hava Tahmini Panelinizi Oluşturun Bu Google E-Tablo Ana Sınıfında Kendi Hava Tahmini Kendi Panelinizi Oluşturun Google Drive hesabınızı akıllı bir hava durumu analiz sistemine dönüştürmek ister misiniz? ve bir Star Trek fantezisini yaşayalım mı? Tamam! veya basit hücre hesaplamalarını yapan basit komut dosyalarını nasıl yazacağını bilen bir acemi, kolay programlama tekniklerini izleyebilir, bu sayede temiz ve hatasız kod yazma olasılığını artırırsınız.

VBA’ya Başlarken

Excel'de VBA'da daha önce programlanmadıysanız, Geliştirici araçlarının bunu yapmasını sağlamak aslında oldukça kolaydır. Sadece git Dosya > Seçenekler ve sonra Şeridi Özelleştir. Sadece taşı Geliştirici sol bölmeden sağa komut grubu.

Onay kutusunun etkin olduğundan emin olun ve şimdi Excel sekmesinde Geliştirici sekmesi görünecektir.

Bu noktada kod editörü penceresine girmenin en kolay yolu sadece Kod Görüntüle altındaki düğme Kontroller Geliştirici menüsünde.

1. Korkunç Değişken İsimleri

Artık kod penceresinde olduğunuzda, VBA kodunu yazmaya başlamanın zamanı VBA ile Kendi Basit Uygulamanızı Nasıl Yapabilirsiniz VBA ile Kendi Basit Uygulamanızı Nasıl Yapabilirsiniz VBA ile gerçekten kolay bir şekilde yazmayı sevenler için kendi uygulamanız, ancak daha önce hiç bir kod satırı yazmamışsınız, size… Çoğu programdaki ilk önemli adım, ister VBA'da ister başka bir dilde olsun, değişkenlerinizi tanımlamaktır..

On yıllarca süren kod yazma sürecim boyunca, değişken adlandırma kuralları söz konusu olduğunda birçok düşünce okulu ile karşılaştım ve birkaç şeyi zor yoldan öğrendim. Değişken isimleri oluşturmanın hızlı ipuçları:

  • Onları mümkün olduğunca kısa yapın.
  • Onları mümkün olduğunca açıklayıcı hale getirin.
  • Onları değişken tipinde önyükleme (boolean, integer, etc…).
  • Doğru kapsamı kullanmayı unutmayın (aşağıya bakınız).

İşte WMIC Windows'u PC'den bilgi toplamak için Excel'den arama yapmak için sık kullandığım bir programdan örnek bir ekran görüntüsü. Basit bir Excel VBA Komut Dosyası Kullanarak Tüm Bilgisayar Bilgilerini Nasıl Görebilirim Basit bir Excel VBA Komut Dosyası Kullanarak Tüm Bilgisayar Bilgilerinizi Nasıl Görebilirsiniz 10 dakikalık çalışma, bilgisayarınızla ilgili düşündüğünüzden daha ayrıntılı bilgi verecektir. Gerçek olamayacak kadar iyi geliyor mu? Nasıl kullanılacağını biliyorsanız, bu Windows. .

Modül veya nesnenin içindeki herhangi bir fonksiyonun içindeki değişkenleri kullanmak istediğinizde (bunu aşağıda açıklayacağım), sonra bir “halka açık” ile bildirimi önyükleyerek değişken halka açık. Aksi taktirde değişkenler, kelimesi kelimesi ile önyüklenerek bildirilir. karartmak.

Gördüğünüz gibi, değişken bir tamsayıysa, int. Eğer bir ip ise o zaman str. Bu, programlama sırasında daha sonra yardımcı olur, çünkü değişkenin ne tür verileri içerdiğini her zaman bilirsiniz, yalnızca adı inceleyerek. Ayrıca, bilgisayar adını taşıyan bir dize gibi bir şey varsa, o zaman değişken çağrılır. strComputerName.

Sadece sizin anladığınız çok karmaşık veya kafa karıştırıcı değişken isimleri kullanmaktan kaçının. Başka bir programcının arkanızdan gelmesini ve ne anlama geldiğini anlamayı kolaylaştırın!

İnsanların yaptığı bir başka hata da sayfa adlarını varsayılan olarak bırakmaktır “Sayfa1”, “Sheet2”, vb… Bu, bir programa daha fazla kafa karışıklığı ekler. Bunun yerine, sayfaları anlamlı olacak şekilde adlandırın.

Bu şekilde, Excel VBA kodunuzdaki sayfa adına başvurduğunuzda Internet Explorer Oturumlarını Otomatikleştirmek için VBA'yı Kullanma Bir Excel Elektronik Tablodan Internet Explorer Oturumlarını Otomatikleştirmek için VBA'yı Kullanma Bir Excel Elektronik Tablodan VBA'yı Kullanma Visual Basic for Applications (VBA) komut dosyasını, Word, Outlook veya Excel gibi, onu destekleyen herhangi bir uygulamadan kullanmanın şaşırtıcı yolları. , mantıklı bir isme atıfta bulunuyorsunuz. Yukarıdaki örnekte Ağ bilgisini çektiğim bir sayfam var, bu yüzden sayfayı çağırdım “Ağ”. Şimdi kodda, Ağ sayfasına referans vermek istediğim zaman, hangi sayfa numarasına bakmadan hızlıca yapabilirim..

2. Döngü yerine kırma

Yeni programcının en sık karşılaşılan sorunlarından biri, Programlamanın Bugün Size Verebileceği 6 Yaşam Alışkanlığı var Bugün Programlama Yapabileceğiniz 6 Yaşam Alışkanlığı bugün size öğretebilir Başarılı bir hayat sürmek için bilmeniz gereken her şey, bir bilgisayar programından elde edebilirsiniz. Bana inanma Okumaya devam etmek. Kod yazmaya başladıklarında düzgün döngüler ile uğraşıyorlar. Ve Excel VBA kullanan birçok kişi çok fazla kod yeniliği olduğundan, zayıf döngü salgınıdır..

Döngü oluşturma Excel'de çok yaygındır, çünkü genellikle veri satırlarını bir satırın veya bir sütunun sonuna kadar işlediğinizden, hepsini işlemek için döngü yapmanız gerekir. Yeni programcılar genellikle belirli bir koşul geçerli olduğunda anında sadece bir döngüden (bir Döngü veya Bir Süre bakışı) çıkmak isterler..

Yukarıdaki kodun karmaşıklığını göz ardı edebilirsiniz, yalnızca iç IF ifadesinin içinde, koşul geçerliyse For döngüsünden çıkma seçeneğinin bulunduğunu unutmayın. İşte daha basit bir örnek:

X = 1'den 20'ye kadar x = 6 için Çık Sonra y = x + intRoomTemp Sonraki i 

Yeni programcılar bu yaklaşımı benimsemektedir, çünkü kolaydır. Bir döngüden çıkmak için beklediğiniz bir durum ortaya çıktığında, hemen atlamak için cazip bir hal alır, ama yapmayın.

Sık sık değil, ondan sonra gelen kod “mola” Çıkmadan önce döngü boyunca son kez bile işlemek için önemlidir. Bir döngüyü yarı yolda bırakmak istediğiniz koşulları ele almanın daha temiz ve profesyonel bir yolu, bu çıkış koşulunu bir While cümlesi gibi bir şeye dahil etmektir..

İken (x> = 1 VE x<=20 AND x6) For x = 1 To 20 y = x + intRoomTemp Next i Wend 

Bu, x'in 5 olduğu son işlemden sonra ve For döngüsü 6'ya kadar sayıldığında bir kez zarafetle çıkmanız durumunda, kodunuzun mantıksal bir akışına izin verir, garip EXIT veya BREAK komutlarını orta döngüye dahil etmeye gerek yok.

3. Dizileri Kullanmamak

Yeni VBA programcılarının Bilgisayar Programcılığının Temelleri 101 - Değişkenler ve Veri Tipleri Bilgisayar Programcılığının Temelleri 101 - Değişkenler ve Veri Tipleri Nesneye Yönelik Programlama hakkında biraz önce konuştuk ve konuştuk; Programlamanın mutlak temellerini dile özgü olmayan bir şekilde gözden geçirin. Bu… hesaplama, hesaplama işlemi sırasında satırları ve sütunları filtreleyen sayısız iç içe döngü içindeki her şeyi işlemeye çalışıyor.

Bu işe yarasa da, aynı hesaplamaları sürekli olarak aynı sütunda aynı sayılarla yapmanız gerekiyorsa, büyük performans sorunlarına yol açabilir. Bu sütunda dolaşmak ve değerleri her seferinde çıkarmak yalnızca programlamak sıkıcı değildir, işlemciniz için de bir katildir. Uzun sayı listelerini kullanmanın daha etkili bir yolu bir dizi kullanmaktır..

Daha önce hiç bir dizi kullanmadıysanız, korkma. Bir diziyi belirli sayıda buz küpü tepsisi olarak düşünün. “küpler” bilgi koyabilirsiniz. Küpler 1 ile 12 arasında numaralandırılmıştır ve bu şekilde “koymak” onlara veri.

Bir diziyi sadece yazarak kolayca tanımlayabilirsiniz Tamsayı olarak Dim arrMyArray (12).

Bu bir oluşturur “tepsi” doldurmanız için 12 yuva.

İşte bir dizi olmadan döngü döngü kodu gibi görünebilir:

Alt Test1 () Dim x As Tam Sayı intNumRows = Aralık ("A2", Aralık ("A2"). End (xldown)). Rows.Count Aralık ("A2"). X = 1 Seçin Range (Aralık) ise intNumRows (" A "& str (x)). Değeri < 100 then intTemp = (Range("A" & str(x)).value) * 32 - 100 End If ActiveCell.Offset(1, 0).Select Next End Sub 

Bu örnekte, kod aralıktaki her bir hücre boyunca aşağı doğru işlemekte ve sıcaklık hesaplamasını gerçekleştirmektedir..

Programın ilerleyen saatlerinde, aynı değerlerde başka bir hesaplama yapmak istiyorsanız, bu kodu kopyalamanız, bu hücrelerin tümünü işlemden geçirmeniz ve yeni hesaplamanızı yapmanız gerekir..

Şimdi, onun yerine bir dizi kullanırsanız, satırdaki 12 değeri uygun depolama dizinize kaydedebilirsiniz. Daha sonra, ne zaman bu sayılarla ilgili hesaplamalar yapmak istediğinizde, hafızadalar ve gitmeye hazırlar..

Alt Test1 () Dim x As Tam Sayı intNumRows = Aralık ("A2", Aralık ("A2"). Bitiş (xldown)). Rows.Count Aralık ("A2"). X = 1 Seçin intNumRows arrMyArray (x- 1) = Aralık ("A" & str (x)). Değer) ActiveCell.Offset (1, 0) .Bir Sonraki Son Alt Seç 

“X-1” Dizi elemanına işaret etmek için gereklidir, çünkü For döngüsü 1'den başlar. Dizi elemanlarının 0'dan başlaması gerekir..

Ancak bir kez dizinizin tamamını satırdaki değerlerle doldurduktan sonra, daha sonra programda diziyi kullanarak istediğiniz tüm hesaplamaları bir araya getirebilirsiniz..

Sub TempCalc () x = 0 To UBound (arrMyArray) için arrMyTemps (y) = arrMyArray (x) * 32 - 100 Sonraki Son Sub 

Bu örnek satır dizisinin tamamından geçer (UBound, dizideki veri değerlerinin sayısını verir), sıcaklık hesaplamasını yapar ve sonra bunu arrMyTemps adlı başka bir diziye koyar..

İkinci hesaplama kodunun ne kadar basit olduğunu görebilirsiniz. Ve bu noktadan sonra, aynı sayı kümesi üzerinde daha fazla hesaplama yapmak istediğinizde, diziniz önceden yüklenmiş ve kullanıma hazırdır.

4. Çok Fazla Referans Kullanma

Tam teşekküllü Visual Basic veya VBA ile programlama yapıyorsanız, eklemeniz gerekecek “Referanslar” Access veritabanına erişmek veya bir metin dosyasına çıktı yazmak gibi bazı özelliklere erişmek için.

Referanslar benzerdir “kütüphaneler” Bu dosyayı etkinleştirirseniz, dokunabileceğiniz işlevlerle dolu. Referansları Geliştirici görünümünde üzerine tıklayarak bulabilirsiniz. Araçlar menüde ve ardından Referanslar.

Bu pencerede bulacağınız şey mevcut VBA projeniz için seçili olan referansların tümü.

Deneyimlerime göre, buradaki seçimler bir Excel kurulumundan diğerine ve bir bilgisayardan diğerine değişebilir. Çok fazla kişi bu bilgisayarda Excel ile neler yaptığına, belirli eklentilerin veya özelliklerin eklenip eklenmediğine veya bazı programcıların geçmiş projelerde belirli referansları kullanıp kullanamayacağına bağlıdır..

Bu listeyi kontrol etmenin iyi bir nedeni, gereksiz referansların sistem kaynaklarını boşa harcamasıdır. Herhangi bir XML dosyası manipülasyonu kullanmıyorsanız, neden Microsoft XML'yi seçili tutmalısınız? Bir veritabanıyla iletişim kurmazsanız, Microsoft DAO'yu kaldırın. Bir metin dosyasına çıktı yazmazsanız, sonra silin Microsoft Komut Dosyası Çalıştırma Zamanı.

Bu seçilen referansların ne yaptığından emin değilseniz, tuşuna basın. F2 ve Nesne Gezgini'ni göreceksiniz. Bu pencerenin en üstünde, göz atılacak referans kütüphanesini seçebilirsiniz..

Seçildikten sonra, hakkında daha fazla bilgi edinmek için tıklayabileceğiniz tüm nesneleri ve kullanılabilir işlevleri göreceksiniz..

Örneğin, DAO kitaplığına tıkladığımda, bunun tümünün veritabanlarına bağlanmak ve onlarla iletişim kurmak olduğu açıkça anlaşılıyor..

Programlama projenizde kullandığınız referans sayısının azaltılması gayet iyi ve genel uygulamanızın daha verimli çalışmasına yardımcı olacaktır..

Excel VBA'da Programlama

Aslında Excel'de kod yazma fikri Excel'de Metin İşlemleriyle Zaman Tasarrufu Excel'de Metin İşlemleriyle Zaman Tasarrufu Excel sayılarla sihir yapabilir ve karakterleri eşit derecede idare edebilir. Bu kılavuz, elektronik sayfalardaki metnin nasıl analiz edileceğini, dönüştürüleceğini, değiştirileceğini ve düzenleneceğini gösterir. Bu temel bilgiler, karmaşık dönüşümler yapmanızı sağlayacaktır. birçok insanı korkutuyor, ancak bu korku gerçekten gerekli değil. Uygulamalar için Visual Basic, öğrenmesi çok basit bir dildir ve yukarıda belirtilen temel ortak uygulamaları izlerseniz, kodunuzun temiz, verimli ve kolay anlaşılır olmasını sağlarsınız..

VBA’da kodlar mısınız? İlk defa VBA öğrenen diğer okuyucularla paylaşabileceğiniz yıllar boyunca ne tür dersler öğrendiniz? İpuçlarınızı aşağıdaki yorumlar bölümünde paylaşın!

Image credits: Computer by www.BillionPhotos.com Shutterstock aracılığıyla, Renkli Buzluk Tepsileri hahauk tarafından Shutterstock.com aracılığıyla




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.