В 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.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайта