Копирайте клетки от ActiveCell Row в лист с база данни, използвайки VBA в Microsoft Excel

Anonim

В Microsoft Excel можем да копираме клетки от реда с активна клетка в определен лист. В тази статия ще използваме VBA код за прехвърляне на данни от всеки лист и обединяване на данните в един работен лист. Ще добавим главен лист в работната книга и ще запазим данните от посочения диапазон в един лист.

Примерните кодове ще се копират в лист с база данни с името Sheet2. Всеки път, когато стартираме макрос, клетките ще бъдат поставени под последния ред с данни след последната колона в лист2. Този макрос ще копира клетките от колона A, D от ActiveCell.

Следва изображението на примерните данни:

За да копирате клетки от ред активна клетка в Sheet2; трябва да следваме стъпките по -долу, за да стартираме VB редактор:

  • Кликнете върху раздела Разработчик
  • От групата кодове изберете Visual Basic

  • Кликнете върху Вмъкване, след това Модул

  • Това ще създаде нов модул
  • Въведете следния код в стандартния модул
Sub CopyCells () Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") Задайте destrange = Sheets ("Sheet2"). Range ("A" & Lr) sourceRange.Copy destrange End Sub 
Sub CopyCellsValues ​​() Dim sourceRange As Range Dim destrange As Range Dim Lr As Long Lr = LastRow (Sheets ("Sheet2")) + 1 Set sourceRange = Sheets ("Sheet1"). Cells (_ ActiveCell.Row, 1) .Range ("A1: D1") С sourceRange Задайте destrange = Sheets ("Sheet2"). Range ("A" _ & Lr) .Resize (.Rows.Count, .Columns.Count) End with destrange.Value = sourceRange.Value End Sub 
Функция LastRow (sh As Worksheet) On Error Resume Next LastRow = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Грешка при включване GoTo 0 Крайна функция 
Функция Lastcol (sh As Worksheet) On Error Resume Next Lastcol = sh.Cells.Find (What: = "*", _ After: = sh.Range ("A1"), _ Lookat: = xlPart, _ LookIn: = xlFormulas , _ SearchOrder: = xlByColumns, _ SearchDirection: = xlPrevious, _ MatchCase: = False). Колона при грешка GoTo 0 Крайна функция 

  • За да проверите горния код на VBA; добавете данни в диапазона „A1: D1“ и след това стартирайте макроса, като натиснете клавиша за бърз достъп F5
  • Данните, съхранени в определения диапазон, ще бъдат копирани в „Sheet2“, започвайки от A1

  • Ако стартираме този макрос отново; данните ще бъдат записани в следващия ред; вижте изображението по -долу:

  • Можем да променим диапазона в горния макрос, който отговаря на нашите изисквания

Заключение: С горния макрос можем да копираме клетки от реда активна клетка в нов лист, използвайки VBA код.

Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.

Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта