İşlemler yapmak için excel'te yaklaşık 25 sayfayı geçmem gerekiyor. Vba kullanarak bunu yapıyorum ve gerçekten yavaş buluyorum, dolayısıyla C# kullanıp kullanamayacağımı bilmek istedim. Bu süreci hızlandırmamda yardımcı olur.C# için bir makro yazabiliriz
cevap
Tam olarak hangi işlemleri yapıyorsunuz? Öncelikle VBA kodunu kendiniz yazmanız için bir etkinlik yapmanız gerekmez. Bir çalışma kitabındaki bir makroyu basitçe kaydedebilir ve C: \ Program Files \ Microsoft Office \ Office12 \ Xlstart'a kaydedebilirsiniz. Excel bir makroyu kaydeder ve açtığınız tüm sayfalarda kullanılabilir hale getirir.
Ayrıca, otomatik olarak oluşturulan VBA kodunu yukarıda belirtilen işlemde gereksiniminize uyacak şekilde de ayarlayabilirsiniz.
Şahsen, işi yapmak için bir C# eklentisi yazmayı düşünmüyorum. VBA, özellikle Office Nesne Modeli ile çalışmak için hazırlanmış bir dildir. Eğer bu yeterince hızlı çalışmazsa, hangi işlemi yaptığınıza bakmanız gerekir.
Excel Nesne Modeli'ni işlemek ve sürdürmek için çok fazla bir C# eklentisi oluşturmayı düşünüyorum. Ayrıca büyük bir öğrenme eğrisi de içerecektir. VBA makro gibi Excel çalışma kitabından
Makrolar macro_ özelliği gereksiz _activate_ ve _select_ komutların bir ton sorunu nedeniyle ** ** çok yavaş olma eğilimindedir _record. Bir şeyin nasıl yapılabileceğini görmek için kısa bir makro kaydetmek yararlı olabilir, ancak yürütme hızı endişe duyuyorsa, kaydedilen makroyu yeniden yazmanız gerekir. – riderBill
Çağrı C# - yapabilirsiniz C# uygulamasından değil
Erişim Excel çalışma kitabı - yapabilirsiniz. Bu, Microsoft Visual Studio Araçları için Office (VSTO)
olarak adlandırılır VSTO kullanarak geçerli VBA makrosuna C# eşdeğerini yazabilmenize rağmen, performans açısından önemli bir fark yaratabileceğinden çok şüphe duyuyorum. Her iki durumda da, aynı Excel COM nesnelerini işlemiş olursunuz ve yürütme süresinin çok benzer olması olasıdır. Üste |
Performansınız, temel olarak Excel nesnelerini işlemek için kullandığınız tekniklere bağlı olacaktır. Basit bir örnek olarak, Excel Aralığından 2 boyutlu bir diziye değerleri tek bir deyimde atayabilirsiniz: bu, koddaki satır ve sütunlar arasında yinelemekten ve değerleri dizinize tek tek kopyalamaktan çok daha hızlıdır.
Çok yavaş bulduğunuz VBA kodunun bitlerini yayınlamanızı ve performansınızı iyileştirme konusunda ipuçları almanızı öneririz.
C# içinde bir Excel otomasyon komutu yazmak için benim ESharper eklenti deneyebilirsiniz. Ayrı bir C# uygulaması veya bir eklenti oluşturmaktan daha kolaydır ve performans optimizasyonu için daha fazla seçenekle hem Excel nesne modeline hem de Excel C API'sine erişebilirsiniz.
- 1. Makro içinde makro içinde C
- 2. "Makroda" makro C
- 3. makro C tipi doğrulamak için nasıl
- 4. İşlevsel makro tanımı C
- 5. C garip makro sözdizimi
- 6. Scala'da maven2 eklentisini nasıl yazabiliriz?
- 7. C önişlemci Makro tanımlama Makroyu
- 8. # ++ işaret makro genişletme davranışı C++
- 9. Gömülü C işlevi makro sorun
- 10. C/C++ Makro oluşturma vs. Kod üretimi
- 11. WinRT tanımak için makro?
- 12. Excel Makro Kaydetmek için
- 13. makro bağımlı makro
- 14. Uygun C önişlemci makro no-op ayıklama kaydı için
- 15. jinja2: Makro makro veya dinamik makro çağrıları seçiliyor
- 16. makro - bir klasör
- 17. C Önişlemci, Makro sonucunu dizge haline getirme
- 18. Makro tanımı yapmak için bir argüman olarak nasıl iletilebilir?
- 19. __VA_ARGS__ makro yerine bir C işlevi içinde nasıl kullanılır?
- 20. SAS makro ben yardım seçeneği ile bir makro oluşturmak çalışıyorum
- 21. Bir C++ 0x yapısının POD olup olmadığını belirlemek için bir derleme zamanı func/makro var mı?
- 22. Koşullu makro genişletme
- 23. elisp makro?
- 24. Excel Makro - Bir işlemi tekrarlayın
- 25. Makro genişletmeyi engelleme
- 26. Makro Değişkeninin SAS Makro İçindeki Değişen Değeri
- 27. Çevrimiçi formu doldurmak için bir makro oluşturmak, döngü yanlış ayarlanmış
- 28. VBA Makro
- 29. IntelliJ Makro menüsü
- 30. Makro GAS
C# yi doğrudan makroda kullanabileceğinizi sanmıyorum. Sayfa ile çalışmak için C# ile yazılmış bir AddIn oluşturabilirsiniz. İşlem hızlandırırsa, yaptığınız işi açıklayana kadar işleminiz yanıtlanamaz. – Khh
@gizgok: Excel ile oluşturulmuş merhaba, lütfen kabul cevabım – abatishchev