Слияние двух макросов - PullRequest
       4

Слияние двух макросов

0 голосов
/ 22 ноября 2018

У меня есть лист с необработанными данными, который называется «Необработанные данные». Я хочу скопировать эти данные в другой лист, который называется «Данные».

В «Необработанных данных» у меня есть именованный диапазон, который называется «RawTab1».«Данные» У меня есть таблица с именем «DataTable», куда я хочу вставить данные из диапазона «RawTab1», но не две первые две строки из диапазона «RawTab1»

A сделали этот макрос для очисткиданные в DataTable перед вставкой новых данных из RawTab1:

    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Data")
        Range("A3:M3", sht.Range("A3:M3").End(xlDown)).ClearContents
    End Sub

И это макрос для копирования данных из диапазона RawTab1 в DataTable

  Sub CopyRawTab1()
Application.Goto Reference:="RawTab1"
Selection.Copy
Sheets("Data").Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
End Sub

Итак, мои вопросы:

  1. Как объединить эти два макроса?
  2. Как можно избежать вставки двух первых строк из RawTab1 в DataTable?

1 Ответ

0 голосов
/ 22 ноября 2018

Это должно быть примерно так:

Option Explicit

Public Sub Combined()
    Dim sht As Worksheet
    Set sht = ThisWorkbook.Worksheets("Data")
    sht.Range("A3:M3", sht.Range("A3:M3").End(xlDown)).ClearContents

    With Worksheets("Raw Data").Range("RawTab1")
        'copy everything from RawTab1 but not the first 2 rows
        .Resize(RowSize:=.Rows.Count - 2).Offset(RowOffset:=2).Copy
    End With

    sht.Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End Sub

Обратите внимание, что я использовал комбинацию свойства Range.Resize и свойства Range.Offset удалить первые строки в диапазоне RawTab1 перед копированием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...