Excel VBA'da, Debug.Print
yönergelerini "üretime" giden kodda bırakmak iyi bir uygulamadır. Bu, bir şeyler yanlış gittiğinde, kullanıcının makinesinde gerçek zamanlı sayfaları ayıklamak için oldukça kullanışlıdır. Visual Studio kapalıyken performansı etkiler mi? Eğer değilse, ne önerirsiniz?"Debug.Print" yönergelerini "üretime" giden kodda bırakmak iyi bir uygulama mıdır?
cevap
Debug.Print talimat biraz performans kaybına sahip DO. Bu yüzden onları bir zillion kez idam edilen döngülerden kaçardım. Bu davalar haricinde, onları saklamanın iyi olduğunu düşünüyorum.
Ayrıca, koşulsuz derleme yönergeleri (#if
), bir global sabitleyiciyi (#const
) tümleşik olarak etkinleştirme ve devre dışı bırakma efektleri ile birlikte kullanabilirsiniz.
#CONST developMode = True
sub Xyz
#If developMode Then
Debug.Print "something"
#End If
End Sub
@iDevelop +1 Her gün yeni bir şey öğrenin - Excel'in koşullu derlemeyi desteklemediğini farketmedik! Teşekkürler. – dash
ilginç görünüyor, teşekkürler! – Jerome
+1'i desserve etmek için yeterince temizleyin :). Btw, koşullu derleme (ve bazı yararlı diğer şeyler) bu ilginç konuyla tartışıldı: http://stackoverflow.com/questions/1070863/hidden-features-of-vba – JMax
Genelde iki sürümüm vardır; hata ayıklama olmadan prod, ve hata ayıklama ile prod. Bu, catchall hata işleyicisi günlüğü ile birleştiğinde, bir kullanıcı bir sorunla karşılaşırsa, hata ayıklama sürümünü onlara dağıtabilir ve bunu çalıştırabilir.
Bu yorumları debug.print ifadeleriyle çalıştırdığım bir makro var, bu yüzden gerçek bir bakım yükü değil.
Hata ayıklama sürümünü her zaman çalıştırmayla ilgili sorun (ve Excel VBA ile genellikle bir performans olayı değil) uygulamanızın da gerekmediği bilgileri sürekli olarak yayınlamasıdır. Örneğin kontrollü elektronik tabloları olan bir ortamda, bu kötü bir şey olarak görülebilir. Küresel hata işleme açısından
, yine de hata işlemeyi istediğiniz her fonksiyon için Error GoTo'ON deyimini ihtiyaç yapabilirsiniz, ancak, boru bunlar ortak bir işleve.
Public Function HandleTheNastyErrors(E As ErrObject, ByVal writeLog As Boolean = True)
Select Case E.Number
Case xxx
...specific error handling...
Case Else
... Display a message to the user about how you dont know what happened....
End Select
If writeLog Then
...Log Writing Code...
End If
End Function
Ve sonra, OnError:
ErrorHandler:
Call HandleTheNastyErrors(Err, True)
göster hile
"Tümünü yakala" yla ilgili yorum yapabilir misiniz? Hataların nasıl akıllıca ve nasılsa genetik olarak şimdiye kadar nasıl ele alınacağına dair fikirlerim yok. Teşekkürler ! – Jerome
@jeromeG İşte gidersiniz. Umarım yardımcı olur. – dash
hata nesnesini kendiliğinden functon'a iletmek ... bu ilginç bir fikir. –
- 1. C#: En İyi Yöntemler Debug.Print
- 2. Kodda uygulama sürüm numarasını bulma
- 3. Spring ACL iyi bir ACL uygulaması mıdır?
- 4. iyi uygulama
- 5. C# Subclass İyi Uygulama
- 6. iyi uygulama
- 7. VBA Debug.Print günlüğüne nereye gider?
- 8. Önişlemci yönergelerini anlama
- 9. XXTEA, bir PIC mikroişlemcisi için iyi bir şifreleme algoritması mıdır?
- 10. ASP.NET Core UserSecrets'ın üretime nasıl dağıtılacağı
- 11. Linux'ta C++ için iyi bir profiler kullanımı kolay mıdır?
- 12. Bir sözlükte bulunmayan anahtarı önlemek için bu genel uygulama mıdır?
- 13. Nesneler arasında dairesel referans kötü bir uygulama mıdır?
- 14. Python'un getattrını yaygın olarak kullanmak kötü bir uygulama mıdır?
- 15. cmake en iyi uygulama
- 16. En İyi Uygulama
- 17. Capistrano hazırlama ve üretime dağıtıyor
- 18. Doctrine2: - En İyi Uygulama
- 19. Marionette Kontrolörü İyi Uygulama
- 20. Uygulama paketindeki Android öğeleri klasörüne giden yol nasıl verilir
- 21. Özel görünüm için AngularJs dinamik yönergelerini kullanma
- 22. VBA Debug.Print çıktısını bir metin dosyasına nasıl kaydederim?
- 23. Kodda SQL sorguları düzenlemek için en iyi yöntem nedir?
- 24. Mod_rewrite (.htaccess) yönergelerini ayıklamak ve test etmek için bir araç
- 25. Tespit SMS Gelen ve giden
- 26. '!!' kullanıyor C/C++ iyi uygulamada ve yaygın mıdır?
- 27. Yay Webflow En İyi Uygulama
- 28. HTML düzenleri en iyi uygulama
- 29. iyi uygulama veya geçici çözüm
- 30. JavaScript Sınıfı En İyi Uygulama?
do sen "Visual Studio" demek ama doğru, VBA bahsediyoruz? VBE mi demek istiyorsun? – aevanko
Ahhh, evet sanırım şimdi insanların VBE olarak adlandırdığı şeyi anlıyorum ... Evet, sanırım :) [ALT + F11] – Jerome
1) Eğer bir şeyler yanlış gittiğinde, kullanıcının ne yaptığını yakalamak önemliyse, Bir işlem günlüğü daha iyi bir seçenek görecekti. Koşuya veya gün başına yeni bir dosya başlat; 48 saatten fazla herhangi birini silin. Evet bir performans maliyeti var ama nasıl ölçersiniz? 2) Visual Studio, MS'in profesyonel dilleri için geliştirme ortamıdır. VB 2010, VBA/VBE'den yüzlerce kat daha hızlı ve binlerce harika tesise sahip. Bir çalışma sayfası kullanmak istiyorsanız Excel'e buradan ulaşabilirsiniz. –