2016-11-01 7 views
0

enter image description hereВставить в определенном диапазоне

Посмотрите код ниже:

With Worksheets("L.NAM.M") 
     With .Cells.Find(What:="forecast_quarter", After:=ActiveCell, LookIn:= _ 
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
      xlNext, MatchCase:=False, SearchFormat:=False) 
      .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy _ 
      Destination:=Worksheets("NewForecast").Range("K" & Rows.Count).End(xlUp).Offset(1) 
     End With 
    End With 

With Worksheets("L.EMEA.O") 
    With .Cells.Find(What:="forecast_quarter", After:=ActiveCell, LookIn:= _ 
     xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
     xlNext, MatchCase:=False, SearchFormat:=False) 
     .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("K" & Rows.Count).End(xlUp).Offset(1) 
    End With 
End With 


     'Record Source 

     With Worksheets("L.EMEO.O") 
     With .Cells.Find(What:="Record Source", After:=ActiveCell, LookIn:= _ 
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
      xlNext, MatchCase:=False, SearchFormat:=False) 
      .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("N" & Rows.Count).End(xlUp).Offset(1) 
     End With 
    End With 

Что я делаю here..I я получаю forecast_quarter данных из этих двух таблиц и вставки под заголовком новой таблицы , Таким образом, он находит последнюю информацию с данными и вставкой ниже. Трюк приходит при поиске источника записи из «L.EMEA.O», так как «L.NAM.M» не имеет данных для столбца L, он испортится, когда я вставляю данные L.EMEA.O, поскольку он не согласуется с L.EMEA.O, но с L.NAM.O. Я бы хотел, чтобы вставить выровненную строку, где она вставляла прогноз_quarter для L.EMEA.O.

Любые идеи? Я атташе фото

enter image description here

В этом случае вставленного в K114, если я запустить другую часть, я хочу, чтобы вставить в то же не в N110, но N114.

+0

У меня нет полной картины того, что вы пытаясь сделать или что проблема вообще. Больше изображений было бы полезно. Это очень простая проблема. – user1274820

+0

Привет! Спасибо за ответ! Извините, если я не так понимаю. Но я добавляю новую картину. На картинке вы можете видеть, что Forecast_Quarter с одного листа идет до A10 (независимо от того, что) и Record Source до A8. Второй лист: прогноз_квартала начинается с A11 (первая пустая ячейка) и переходит на A23. Поскольку моя формула похожа, найдите первую пустую ячейку и вставьте ее, мой источник записи начнется с B9, потому что это где первый пробел, я хочу, чтобы он начинался в той же строке моего второго прогнозируемого квартала листа (Wherever), в этом случае B11. –

ответ

0

магазин индекс строки используется для «L.EMEA.O» и использовать его для «L.EMEO.O», а также:

With Worksheets("L.NAM.M") 
      With .Cells.Find(What:="forecast_quarter", After:=ActiveCell, LookIn:= _ 
       xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
       xlNext, MatchCase:=False, SearchFormat:=False) 
       .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy _ 
       Destination:=Worksheets("NewForecast").Range("K" & Rows.Count).End(xlUp).Offset(1) 
      End With 
     End With 

    Dim L_EMEA_ORow As Long '<--| variable to hold "forecast_quarter" sheet column "K" row index where to start pasting "L.EMEA.O" sheet data from 
    With Worksheets("L.EMEA.O") 
     With .Cells.Find(What:="forecast_quarter", After:=ActiveCell, LookIn:= _ 
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
      xlNext, MatchCase:=False, SearchFormat:=False) 
      L_EMEA_ORow = Worksheets("NewForecast").Range("K" & Rows.Count).End(xlUp).Offset(1).Row '<--| store relevant row index where to start pasting data from 
      .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("K" & L_EMEA_ORow) '<--| use relevant row index 
     End With 
    End With 


    'Record Source 

    With Worksheets("L.EMEO.O") 
     With .Cells.Find(What:="Record Source", After:=ActiveCell, LookIn:= _ 
      xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _ 
      xlNext, MatchCase:=False, SearchFormat:=False) 
      .Parent.Range(.Offset(1), .Parent.Cells(Rows.Count, .Column).End(xlUp)).Copy Destination:=Worksheets("NewForecast").Range("N" & L_EMEA_ORow) '<--| use same relevant row index calculated above 
     End With 
    End With 
+0

ты лучший, на самом деле. Еще раз спасибо! так приятно видеть, как люди здесь помогают! –

+0

Добро пожаловать. Хотя я, к сожалению, не самый лучший. Но рад помочь. – user3598756

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