Excel makroları, çalıştırdıktan sonra "geri al" işlevinin kullanılmasına izin vermiyor gibi görünüyor. Excel'de bir VBA makrosuna undo
işlevselliğini pişirmenin bir yolu var mı?Bir Excel VBA Makinesine Geri Dönme Yapılandırma
cevap
Excel VBA bu işlemek için Application.OnUndo
işlevi vardır: Makro ilk satırı sonra bir yedek dizindeki bir kopyasını saklamanızı çalışma kitabını kapatın ve orijinali yeniden olarak
Public Sub DoSomething
... do stuff here
Application.OnUndo "Undo something", "UnDoSomething"
End Sub
Public Sub UnDoSomething
... reverse the action here
End Sub
Makrolarımı çalıştırmadan önce her zaman hemen kaydetmeliyim (en azından test sırasında), her şey armut şeklinde giderse, kaydetmeden çıkıp yeniden açabilirim.
Gerçek makroda pişirirken, bir listedeki tüm değişikliklerin (hücre içeriği, formüller, biçimlendirme ve benzeri) eski halini temel olarak kaydetmeniz ve daha sonra bu listeyi yürüten bir geri alma makrosuna sahip olmanız gerekir. Ters sipariş. Örneğin
makro için "7" "3" Bir hücreyi C22 içeriği değiştirir ve "genel" den "sayısı 2 ondalıklar) biçimlendirme, listeniz olacaktır:
C22 value 3
C22 format general
bu Çalma geri (başka makro ile) ters sırada değişiklikleri geri istiyorum
Sen makro tutmak için bir bütün ekstra sayfanız var gibi bilgileri silebilir.
Step Cell Type Value
---- ---- ----- -------
1 C22 value 3
C22 format general
2...
Bu entegre olmaz maalesef 'gerçek' ile çok iyi, ama bunun etrafında bir yol olduğunu düşünmüyorum.
Benim düşünce, oldukça basittir. Makro çalışmanızın sonuçlarını beğenmezseniz, kaydedilen çalışma kitabını yukarı çekin. Basit tut, ha?
- 1. excel vba, bir aralıkta
- 2. Excel VBA
- 3. excel-vba
- 4. Excel VBA
- 5. Grup beklediğimden dönme ve geri dönme sayma
- 6. UITableView'a geri dönme SearchResultDetailView
- 7. onError websockets'a geri dönme
- 8. Bir vektörün Excel VBA karşılığı
- 9. Excel VBA - Bir Aralık'ı Sıfırla
- 10. Bir İşlev Oluşturma - Excel VBA
- 11. excel çalışma sayfamı VBA
- 12. excel tablosundan VBA
- 13. OnClick in Excel VBA
- 14. Tablodaki hizalama vba excel
- 15. Excel VBA Vurgula arama
- 16. erişim değeri Excel VBA
- 17. VBA Excel GetSaveAsFilename parametresi
- 18. Bellek eksikliği Excel VBA
- 19. Excel VBA Colon
- 20. RegEx'in başlangıcına geri dönme RegEx
- 21. Dönüş jeneratörü Geri Dönme Yok
- 22. Kule Geri Dönme İşlemi Yoktur
- 23. Excel VBA türleri dönüştürme hatası
- 24. Bir svn taşıma/yeniden adlandırma geri dönme
- 25. Excel DNA - Marshal C# dizesi VBA ByRef geri aramada
- 26. Excel: ClearContent koruyarak formüller Excel VBA
- 27. VBA Excel: Bir saniyeye bir saniye ekleyin
- 28. Geri çekildikten sonra bir etkinliğe geri dönme olayı nasıl yakalanır
- 29. Serseri makinesine
- 30. Excel içinde VBA içinde tamamlandı
Bu, ilk alt eylemleri geri almanıza yardımcı olacaktır, ancak ne yazık ki hala alt çalıştırmadan önce mevcut olan eylemleri geri alma "geçmişini" kaybedersiniz. Eğer herkes bu sorunu nasıl çözeceğini biliyorsa, gerçek bir nimet olurdu. –
@ExcelDevelopers gibi kastediyorum [here] (http://www.jkp-ads.com/Articles/UndoWithVBA00.asp) – Reafidy