W programie Microsoft Excel możemy skopiować komórki z wiersza activecell do określonego arkusza. W tym artykule użyjemy kodu VBA do przesyłania danych z każdego arkusza i scalania danych w jeden arkusz roboczy. Dodamy arkusz wzorcowy do skoroszytu i zapiszemy dane z określonego zakresu w jednym arkuszu.
Przykładowe kody zostaną skopiowane do arkusza bazy danych o nazwie Sheet2. Za każdym razem, gdy uruchomimy makro, komórki zostaną umieszczone poniżej ostatniego wiersza z danymi po ostatniej kolumnie w arkuszu2. To makro skopiuje komórki z kolumny A, D z ActiveCell.
Poniżej znajduje się obraz przykładowych danych:
Aby skopiować komórki z wiersza activecell do Sheet2; musimy wykonać poniższe kroki, aby uruchomić edytor VB:
- Kliknij kartę Deweloper
- Z grupy Kod wybierz Visual Basic
- Kliknij Wstaw, a następnie Moduł
- Spowoduje to utworzenie nowego modułu
- Wprowadź następujący kod w module standardowym
Sub CopyCells() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Arkusz2")) + 1 Set sourceRange = Sheets("Arkusz1").Cells( _ ActiveCell.Row, 1).Range ("A1:D1") Set odstrange = Sheets("Sheet2").Range("A" i Lr) sourceRange.Copy odstrange End Sub
Sub CopyCellsValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Arkusz2")) + 1 Set sourceRange = Sheets("Arkusz1").Cells( _ ActiveCell.Row, 1).Range ("A1:D1") With sourceRange Set destrange = Sheets("Sheet2").Range("A" _ & Lr).Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value Napis końcowy
Funkcja LastRow(sh As Worksheet) W przypadku błędu Wznów Następny LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas , _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Wiersz przy błędzie Przejdź do 0 Zakończ funkcję
Funkcja Lastcol(sh As Worksheet) W przypadku błędu Wznów Następny Lastcol = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas , _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False). Kolumna w przypadku błędu Przejdź do 0 Zakończ funkcję
- Aby sprawdzić powyższy kod VBA; dodaj dane w zakresie „A1:D1”, a następnie uruchom makro, naciskając klawisz skrótu F5
- Dane przechowywane w określonym zakresie zostaną skopiowane do „Arkusza 2”, zaczynając od A1
- Jeśli ponownie uruchomimy to makro; dane zostaną zapisane w następnym wierszu; patrz poniżej obrazek:
- W powyższym makrze możemy zmienić zakres, który odpowiada naszym wymaganiom
Wniosek: Za pomocą powyższego makra możemy skopiować komórki z wiersza activecell do nowego arkusza za pomocą kodu VBA.
Jeśli podobały Ci się nasze blogi, podziel się nimi ze znajomymi na Facebooku. A także możesz śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy ulepszyć, uzupełnić lub unowocześnić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail