Skopiuj zakres z jednym obszarem do arkusza bazy danych za pomocą VBA w programie Microsoft Excel

Anonim
  • Przykładowe kody zostaną skopiowane do arkusza bazy danych o nazwie Sheet2.
  • Za każdym razem, gdy uruchomisz jeden z podrzędnych, komórki zostaną umieszczone poniżej ostatniego wiersza z danymi lub za ostatnią kolumną z danymi w arkuszu2.
  • Dla każdego przykładu istnieje makro, które wykonuje normalną kopię i takie, które jest tylko kopią wartości.
  • Przykładowe subwoofery korzystają z poniższych funkcji (makra nie będą działać bez tych funkcji).
Sub CopyOneArea() Dim sourceRange As Range Dim odstrange As Range Dim Lr As Long Lr = LastRow(Sheets("Arkusz2")) + 1 Ustaw sourceRange = Sheets("Arkusz1").Range("A1:c10") Ustaw odstrange = Sheets("Sheet2").Range("A" & Lr) sourceRange.Copy destrange End Sub Sub CopyOneAreaValues() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow(Sheets("Sheet2")) + 1 Set sourceRange = Sheets("Sheet1").Range("A1:c10") With sourceRange Set destrange = Sheets("Sheet2").Range("A" & Lr). _ Resize(.Rows.Count, .Columns.Count) End With destrange.Value = sourceRange.Value End Funkcja podrzędna LastRow(sh As Worksheet) W przypadku błędu Wznów Następne LastRow = sh.Cells.Find(What:="*", _ After:=sh.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Wiersz po błędzie Przejdź do 0 End Funkcja 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ę