2016-01-06 4 views
0

Цель: Я пытаюсь скопировать, найти и вставить данные в соответствии с поиском (то есть Region).Копирование и вставка

Проблема: я получаю желаемый результат, когда я определяю, где вставить данные. Но это не то, что предполагает макрос. Предположим, что вы ищете имя этого региона, а затем вставьте данные под соответствующим заголовком и так далее.

Вот что я написал до сих пор:

Sub DataPasting() 

ApplicationUpdating = False 

Sheets("Sheet1").Range("I2:J2").Copy  'copy and pasting the data set from Sheet1 
Sheets("Stories & Topics").Select 

    Dim RegionColumn As Long 
    Dim erow As String 


    RegionColumn = Application.WorksheetFunction.Match(Sheets("Raw").Range("H1"), Sheets("Stories & Topics").Range("A1:Z1"), False) 

    erow = ThisWorkbook.Worksheets("Stories & Topics").Cells(Rows.Count, "B").End(xlUp).Row 

    ThisWorkbook.Worksheets("Stories & Topics").Paste (ThisWorkbook.Worksheets("Stories & Topics").Range("B" & erow + 1)) 

     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
    :=False, Transpose:=False 


ApplicationUpdating = True 


End Sub 

Примечание:

Лист1 = лист, откуда данные должны быть скопированы истории & Темы = Destination лист, где данные должны вставьте

Я также пробовал Vlookup и Match, но не использовал.

enter image description here

Спасибо!

+0

Selection.PasteSpecial всегда вставит результат к текущему выбору, но я не вижу. select before – grominet

+0

Paste Special - вставить числовое значение в лист адресата, потому что это значение получается по формуле, и будет ссылка на ошибку. И даже если я перейду в Paste Special, вывод по-прежнему не будет вставлен под правильным заголовком, и это потому, что мы определили, что его нужно вставить в «B» (если вы проверите «erow» и вставляете код ниже), мы хотим, чтобы местоположение должно быть основано на правильном регионе, который был выбран, и он должен быть случайным. – DeeK

+0

Я прилагаю скриншот основного листа. возможно, это поможет вам. Вот как делается выбор = Дата> Регион (Великобритания и EMEA/APAC)> Тег (Финансы/Продажи)> Объедините количество Маркетинга для региона (APAC) - Все это происходит на другом листе, а затем поиск в этом листе для региона (APAC)> Тема пасты (GHI)> Итоговая сумма (9)> Тег (маркетинг). – DeeK

ответ

0

Это трудно сказать из кода именно то, что вы делаете, но что-то, как это должно работать:

Sub DataPasting() 

    Dim RegionColumn 'variant 
    Dim erow As Long 
    Dim shtRaw As Worksheet, shtSaT As Worksheet, shtOne As Worksheet 

    Set shtRaw = ThisWorkbook.Sheets("Raw") 
    Set shtSaT = ThisWorkbook.Sheets("Stories & Topics") 
    Set shtOne = ThisWorkbook.Sheets("Sheet1") 

    ApplicationUpdating = False 

    RegionColumn = Application.Match(shtRaw.Range("H1").Value, _ 
            shtSaT.Range("A1:Z1"), 0) 

    If Not IsError(RegionColumn) Then 

     erow = shtSaT.Cells(Rows.Count, "B").End(xlUp).Row 

     shtSaT.Cells(erow, RegionColumn).Resize(1, 2).Value = shtOne.Range("I2:J2").Value 

    End If 

    ApplicationUpdating = True 


End Sub 
+0

Привет Тим, вы можете скачать файл с Google Drive. Это то, что я пытаюсь достичь = Выберите дату, регион, тег и запустите макрос ExtractData2. Вы увидите результат в Sheet1. Опубликуйте это, я пытаюсь вставить эти данные в правильный регион и с результатом в Sheet1. Надеюсь, эта помощь. – DeeK

+0

Может кто-нибудь помочь в этом? – DeeK

+0

Ну, я думаю, я должен закрыть поток, поскольку никто, кажется, не может ответить на запрос. Благодаря! – DeeK

Смежные вопросы