Próbuję uruchomić pojedyncze makro, które wykonuje funkcje na wielu arkuszach. Powiedzmy, że przypisano przycisku makra na arkuszu 4. Mam wymienione funkcje chcę go wykonać krok po kroku:Makro VBA w wielu arkuszach roboczych
1) Wybierz pewne komórki w arkuszu, 4 i skopiować do sąsiednich komórek w arkuszu 4.
2) usuń zakres komórek w arkuszu kalkulacyjnym 3.
3) Skróć zakres komórek w arkuszu 2, a następnie wklej ten zakres komórek do arkusza roboczego 3.
4) Weź zakres komórek z oddzielnego skoroszytu i skopiuj do arkusza roboczego 2. (I wiem, że jest to zupełnie inny problem, ponieważ skoroszyt jest automatycznie publikowany i będę musiał znaleźć sposób na połączenie dwóch.)
5) Aktualizuj tabele przestawne znajdujące się w Arkuszu 4 i arkuszu roboczym 3.
Bardzo chciałbym pomóc w pierwszych 3 funkcjach tego. Wkleiłem mój obecny kod poniżej.
Sub START()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim sh3 As Worksheet
Dim sh4 As Worksheet
Set sh1 = ActiveWorkbook.Sheets("Brand")
Set sh2 = ActiveWorkbook.Sheets("CurrentWeek")
Set sh3 = ActiveWorkbook.Sheets("PriorWeek")
Set sh4 = ActiveWorkbook.Sheets("Pivot")
sh4.Range("B29:B30").Select
Selection.Copy
sh4.Range("C29").Select
ActiveSheet.Paste
sh3.Range("A4:AC1000").Select
Selection.Delete
sh2.Range("A4:AC1000").Select
Selection.Copy
sh3.Range("A4").Select
ActiveSheet.Paste
End Sub
to działa ... ale to działa tylko wtedy, gdy jestem we właściwym arkuszu do wykonywania określonej funkcji.
Zamiast nieczytelnych nazw zmiennych, takich jak 'sh1',' sh2' itd., Dlaczego nie nazwać ich czymś użytecznym i przezroczystym jak 'shtBrand',' shtCurrentWeek' itd. Jeden facet w pracy robi dokładnie to samo 'sh1'' sh2' i to powoduje, że wszyscy oszaleli, kiedy próbujemy odczytać jego kod. –
@ Jean-FrançoisCorbett Tak, to naprawdę dobry pomysł. Rozumowanie, którego początkowo nie robiłem, polega na tym, że w moim biznesie nikt nie wie, jak kodować. To zadanie, które próbuję zautomatyzować, zostało już ręcznie wykonane przez około 2-3 lata. To absurd, ale to świetny pomysł! Dziękuję Ci. – kmiao91