Skopiuj komórki z wiersza ActiveCell do arkusza bazy danych za pomocą VBA w programie Microsoft Excel

Anonim

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