2017-09-06 38 views
0

我創建了一個宏,它可以從多個工作表中的多個列中提取數據並將所有數據組織到一個工作表中。在輸入表的最後一行粘貼數據

的代碼,我是:

Private Sub Update_Click() 

    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    Dim path As String, fileName As String 
    Dim lastRowInput As Long, lastRowOutput As Long, rowCntr As Long, lastColumn As Long 
    Dim inputWS1 As Worksheet, inputWS2 As Worksheet, outputWS As Worksheet 

    'set your sheets here 
    Set inputWS1 = ThisWorkbook.Sheets("Universal") 
    Set inputWS2 = ThisWorkbook.Sheets("Geovera") 
    Set outputWS = ThisWorkbook.Sheets("Carriers") 


    rowCntr = 1 

    'get last rows from both sheets 
    lastRowUniversal = inputWS1.Cells(Rows.Count, "A").End(xlUp).Row 
    lastRowGeovera = inputWS2.Cells(Rows.Count, "F").End(xlUp).Row 
    LastRowPolicy = outputWS.Cells(Rows.Count, "B").End(xlUp).Row + 1 
    lastRowOutput = outputWS.Cells(Rows.Count, "A").End(xlUp).Row 
    lastColumn = inputWS1.Cells(1, Columns.Count).End(xlToLeft).Column 

    'Universal 
    inputWS1.Range("A4:A" & lastRowUniversal).Copy outputWS.Range("B2") 
    inputWS1.Range("B4:B" & lastRowUniversal).Copy outputWS.Range("C2") 
    outputWS.Range("E2:E" & (lastRowUniversal - 2)).Value = inputWS1.Name 
    inputWS1.Range("J4:J" & lastRowUniversal).Copy outputWS.Range("G2") 
    outputWS.Range("G2:G" & (lastRowUniversal - 2)).Value = Evaluate("=IF(ISNUMBER(G2:G" & (lastRowUniversal - 2) & "),DATE(YEAR(G2:G" & (lastRowUniversal - 2) & ")-1,MONTH(G2:G" & (lastRowUniversal - 2) & "),DAY(G2:G" & lastRowUniversal & ")),G2:G" & (lastRowUniversal - 2) & ")") 
    inputWS1.Range("G4:G" & lastRowUniversal).Copy outputWS.Range("H2") 

    'Geovera 
    inputWS2.Range("F2:F" & lastRowOutput).Copy outputWS.Range("B65536").End(xlUp).Row 

    Application.ScreenUpdating = True 
    Application.Calculation = xlCalculationAutomatic 
End Sub 

我完成在一張紙上遷移到有組織的主片工作。

當我開始設置第二張紙時,我注意到它覆蓋了第一張紙上的數據。我想要一個代碼將數據粘貼到行的第一個空白處。

我的錯誤是在該行未來:

inputWS2.Range("F2:F" & lastRowOutput).Copy outputWS.Range("B65536").End(xlUp).Row 

仍然不存在。但我希望列F中的數據移動到主表的B列而不刪除我已經複製到前一張表上的內容。

請幫

+0

這片你要的數據複製到...即時通訊有點困惑,因爲'lastRowOutput'被引用「運營商」表單,但您可以從「Geovera」表獲取信息。 – ShanayL

+0

如果您只是嘗試不帶.end(xlUp).row的inputWS2.Range(「F2:F」&lastRowOutput).Copy outputWS.Range(「B65536」),該怎麼辦?它不會在我的工作表上發生錯誤。 –

+0

嘿@ShanayL,即時嘗試將數據複製到Carrier。 Lastrowoutput變量被我放在最後一行,試圖調整它。 –

回答

1

,而不是

inputWS2.Range("F2:F" & lastRowOutput).Copy outputWS.Range("B65536").End(xlUp).Row 

嘗試

inputWS2.Range("F2:F" & lastRowGeovera).Copy outputWS.Range("B" & lastRowUniversal - 1) 
+0

這工作!謝謝! –

相關問題