Próbuję uzyskać pomoc w ostatnim kroku makra programu Excel, nad którym pracowałem. Skonfigurowałem makro, które będzie pobierać dane z arkuszy z dwóch różnych skoroszytów i wklejać je do trzeciego skoroszytu.
Trzeci skoroszyt to jeden z 15 plików przypisanych 15 różnym pracownikom, z których każdy jest oznaczony inną nazwą i numerem.
Skonfigurowałem Makro, aby otwierać i aktualizować każdy z 15 skoroszytów pojedynczo, a następnie zapisywać i zamykać je, ale teraz muszę dostosować zmiany do listy 15 (na wypadek, gdy pracownicy odchodzą lub nowi pracownicy zostać zatrudnionym).
Sposób, w jaki napisałem Makro, musiałbym ręcznie wprowadzić kod i zmienić odniesienie do nazwisk i numerów identyfikacyjnych każdego z 15 pracowników.
Czy istnieje sposób, aby skonfigurować go tak, aby mógł odczytać nazwę i numer z listy (zapisanej na czwartym skoroszycie), dzięki czemu mogę po prostu edytować tę listę w razie potrzeby, a makro może pozostać niezmienione i działać w pętli ? Wiem, że mogłem użyć opcji Zastąp za każdym razem, gdy musiałem dokonać zmiany, ale nadal łatwiej byłoby pracować z jednej edytowalnej listy. Dziękuję Ci.
W poniższym przykładzie odwołuje się pracownik o nazwisku Melvin Smith ID # 2878:
‘ Using the AutoFilter on the workbook called NEW DD
Windows("NEW DD.xlsx").Activate
ActiveSheet.Range("$H$1:$H$3055").AutoFilter Field:=8, Criteria1:=”=*Melvin Smith*”, _ Operator:=xlAnd
Selection.Copy
‘ Going back to Melvin’s workbook named 2878
Windows("2878.xlsx").Activate
Sheets("D dd N").Select
Range("A1").Select
ActiveSheet.Paste
źródło
Odpowiedzi:
W przeszłości robiłem to dokładnie tak, jak mówisz - przechowuję zmienne w innym arkuszu / książce.
Załóżmy, że tworzysz skoroszyt o nazwie „Employees.xlsx”, który wygląda następująco:
Następnie tworzysz dwa napisy: jeden, który zapętla się przez twoją tabelę, a drugi, który wykonuje kopiowanie. Podajemy nazwisko i numer pracownika do drugiego napisu podrzędnego, który użyje tych zamiast wartości zapisanych na stałe.
Mam nadzieję, że to ma sens
źródło
Counter
zmiennej.