Muszę przetestować około 25 arkuszy w programie Excel do wykonywania operacji. Robię to za pomocą vba i znajduję to bardzo wolno, dlatego chciałem wiedzieć, czy mogę użyć C# i jeśli robię to pomogłoby mi przyspieszyć ten proces.Czy możemy napisać makro w języku C# dla Excela
Odpowiedz
Co dokładnie robisz? Po pierwsze nie musisz pisać kodu VBA. Możesz po prostu nagrać makro w skoroszycie i zapisać w C: \ Program Files \ Microsoft Office \ Office12 \ Xlstart. Program Excel zapisze makro i udostępni je we wszystkich otwartych arkuszach.
Możesz również zmodyfikować wygenerowany automatycznie kod VBA w wyżej wymienionym procesie, aby dopasować go do swoich potrzeb.
Osobiście nie sądzę, że napisanie dodatku C# do wykonania pracy przyspieszy to zadanie. VBA to język stworzony specjalnie do pracy z Office Object Model. Jeśli to nie działa wystarczająco szybko, musisz sprawdzić, jaką operację wykonujesz?
Myślę, że tworzenie dodatku C# do manipulowania modelem obiektów programu Excel i utrzymywanie go jest zbyt wiele do zrobienia. Będzie to również obejmować dużą krzywą uczenia się.
Makra utworzone za pomocą funkcji ________________ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Przydatne może być zapisanie krótkiego makra, aby zobaczyć, jak można coś zrobić, ale jeśli szybkość wykonania jest niepokojąca, należy przepisać zarejestrowane makro. – riderBill
Sygnatura C# ze skoroszytu programu Excel VBA makro jak - można nie
Dostęp Excel skoroszyt z aplikacji C# - można. Nazywa się to Microsoft Visual Studio Tools for Office (VSTO)
Chociaż możesz być w stanie napisać odpowiednik w języku C# do bieżącego makra VBA za pomocą VSTO, wątpię, czy miałoby to znaczący wpływ na wydajność.
W obu przypadkach będziesz manipulował tymi samymi obiektami COM programu Excel, a czas wykonania prawdopodobnie będzie bardzo podobny.
Twoje wyniki będą zależeć głównie od technik, których używasz do manipulowania obiektami Excel. Jako prosty przykład można przypisać wartości z zakresu Excela do dwuwymiarowej tablicy w pojedynczej instrukcji: jest to znacznie szybsze niż powtarzanie wierszy i kolumn w kodzie oraz kopiowanie wartości do tablicy jeden po drugim.
Zalecam, aby wysłać bity kodu VBA, które uważasz za zbyt wolne, i poprosić o wskazówki dotyczące poprawy wydajności.
Możesz wypróbować mój dodatek ESharper, aby napisać polecenie automatyzacji programu Excel w języku C#. Jest to łatwiejsze niż stworzenie oddzielnej aplikacji C# lub dodatku, a będziesz miał dostęp do zarówno modelu obiektowego programu Excel, jak i interfejsu API Excel C z większą liczbą opcji optymalizacji wydajności.
- 1. Czy możemy napisać test jednostkowy dla AngularJS routeProvider?
- 2. Czy można napisać ogólny plik zipWith w języku C++?
- 3. Czy można napisać jednolinijkowe w języku Python?
- 4. Jak zaimportować wszystkie arkusze Excela do DataSet w języku C#
- 5. "z" makro w C
- 6. Jak mogę napisać makro "defn" w Clojure?
- 7. Jak napisać kolekcję VBA do arkusza Excela
- 8. Jak dodać nowy wiersz do pliku Excela w języku C#
- 9. Czy istnieje makro __CLASS__ w C++?
- 10. Czy kiedykolwiek będziesz musiał napisać prawdziwy kod w języku asemblera?
- 11. Jak napisać plik XML w języku C# w Unity?
- 12. Przecinek w C/C++ makro
- 13. C makro dla wykrywania wersji OS X (lew czy nie)?
- 14. C makro: kontrola #if dla równości
- 15. Jak napisać fragment kodu, aby wygenerować metodę w języku C#?
- 16. Kolejowe programowanie w języku C# - Jak napisać funkcję przełącznika?
- 17. Czy możemy napisać kod Android za pomocą netbeans
- 18. Wspólne makro długości tablicy dla C?
- 19. C++ 11 predefiniowane makro
- 20. Współdziałanie C# i Excela
- 21. Można napisać tylko WriteLine zamiast Console.WriteLine w języku C#?
- 22. Czy buforowanie w języku C# jest odpowiednie dla mnie?
- 23. Jak napisać superszybki kod strumieniowania plików w języku C#?
- 24. Czy możemy utworzyć publiczną statyczną klasę abstrakcji w języku Java?
- 25. Czy możemy zaimplementować transakcję na obiektach C#?
- 26. Czy można napisać klasę Ping w języku C#, która będzie działać w środowisku Windows 8 Metro?
- 27. Preprocesor C: makro i makro makra stringi
- 28. Legit Zastosowania przesunięcia makro w C/C++
- 29. Czy możemy przechowywać instrukcje w dynamicznie przydzielanej pamięci w języku C?
- 30. C makro/# zdefiniować wcięcie?
Nie sądzę, możesz użyć C# bezpośrednio w makrze. Możesz utworzyć AddIn napisany w C#, aby pracować z arkuszem. Jeśli przyspieszy to proces, nie będzie można udzielić odpowiedzi, dopóki nie określisz, co robisz. – Khh
@gizgok: Cześć, proszę przyjąć moją odpowiedź – abatishchev