2017-09-06 30 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

这工作!谢谢! –

相关问题