Bazı arka plan:hızlı yolu
Ben 17 Alt Rutinler yürütür bir Excel Add-In ve
en kolay, en verimli ve hızlı yolu olacağını merak ediyorum- Tutanak özgü makro
- Display tarafından yapılan değişiklikler (yeni bir elektronik tabloda) tüm değişikliklerin bir listesi ve neden değiştirdiğini (veya bayraklı/vurgulanan) her bir hücre
- her err hücre adresini sağlayın ya da ben şimdiye kadar topladık Ne (aynı çalışma kitabındaki) Başka bir çalışma sayfasındaki belirli bir hücreye kullanıcı alacak tıklanabilir bağlantıda
olarak:
Ben üzerinde okudum Bunu başarmak için birkaç yöntem, özellikle here, here, here ve en önemlisi here. Bu önceki tüm subs tamamladıktan sonra, ikinci bir diziye UsedRange
damping sonra, tüm subs çalışan bir diziye UsedRange
boşaltılması gibi
- olarak yöntemler önerir. İki diziyi karşılaştırın ve bu şekilde farklılıkları bulun.
- Değişiklikleri günlüğe kaydetmek için
worksheet_change
olayından yararlanın. - Marktastic site için son bağlantı, önceki iki yöntemi birleştirerek en ikna edici yöntem sağlar. Bununla birlikte,
worksheet_change
olay yangınları her seferinde diziyi kontrol etme yöntemiyle bile .06 saniye sürüyor, ki bu da çok fazla yük ekleyecektir. Ben yüz
Birkaç belirli sorunlar şunlardır:
- büyük dosyalar ile başa çıkmak benim denizaltılar bazıları olması gerekmez değişiklik yapmak
- (15000 + satır, 150 sütun) Bazı hücrelerde yalnızca yeniden düzenleme değerleri gibi, aksi halde değiştirilmediğine dikkat edin.
- Makronum hızlı çalışacak şekilde oluşturuldu (< 1 dakika) ve büyük dosyaları taramasını tamamladıktan sonra, bununkullanarak ortadan kaldırılacağını tahmin ediyorumolay ve aynı zamanda her hata uygun şekilde ele alındıktan sonra hemen ayrı çalışma sayfasına yazıyor. Mark'ın işaret ettiği gibi her iki yöntemi de kullanmak, çok fazla gecikmeye neden olacak gibi görünüyor. İki dizi karşılaştırılması
- ben çalışıyorum gibi 15000 (satır) yineleme anlamına gelecektir olarak da, büyük olarak dosyalar için oldukça yavaş olacağını görünür ben "m yapma yana 150 (sütunlar) = 2250000 hücrelerini
- x
worksheet_change
olay macro yoluyla tüm değişiklikleri patlamaz.
Yani, temelde ben karşılaşanlar tüm seçenekleri ortadan kaldırır. I düşünebilirsiniz diğer tek seçenek sadece bir dizi kullanımı var Bu kod, hücrenin/konumun ve hatanın yürütüldüğü konumdaki hatayı kaydetmek ve daha sonra alt dizinin tamamlanmasından sonra dizinin tamamını yeni kağıda dökmek için kullanılır. Bu gerçekten benim en iyi seçeneğim olur mu?
Yani, benim soru için, Şimdi
yukarıdaki gerçeklerin tüm ve araştırmaları verilen:
- değişiklikleri kaydetmek ve göstermek için durum en etkili yolu ne olurdu ne gerekiyorsa (-to-not) benim makro tamamlandıktan sonra dosyaya değişiklikler yapıldı? Onu listeledim ya da almasaydım, bu duruma en uygun olacağını düşündüğünüz bir yöntemi paylaşmaktan çekinmeyin.
- Önerilen yöntemin nasıl uygulanacağına dair basit bir örnek kod sağlayabilir misiniz?
, sorunuzu daraltmak için örnek kod içerir ve sorunlu bir parçasını vurgulamak ediniz. Saygılarımla, –
Bunun nasıl daha daraltılacağını göremiyorum. Çok detaylı bir açıklama yaptım. Bağlantılarda bulunan kodlardan başka örnek kodum yok, ancak eğer sizi mutlu ederse doğrudan onları yazıya ekleyeceğim. Ben sadece durumun nasıl ele alınacağı konusunda tavsiyede bulunuyorum, benim için kod yazacak birine ihtiyacım yok. Bunun bir "* kod yazma hizmeti" olmadığını biliyorum. Kuralların farkındayım. – CaffeinatedCoder
Yayınınız, bazı tartışma forumları için daha uygundur, SO değil. Saygılarımızla, –