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列而不刪除我已經複製到前一張表上的內容。
請幫
這片你要的數據複製到...即時通訊有點困惑,因爲'lastRowOutput'被引用「運營商」表單,但您可以從「Geovera」表獲取信息。 – ShanayL
如果您只是嘗試不帶.end(xlUp).row的inputWS2.Range(「F2:F」&lastRowOutput).Copy outputWS.Range(「B65536」),該怎麼辦?它不會在我的工作表上發生錯誤。 –
嘿@ShanayL,即時嘗試將數據複製到Carrier。 Lastrowoutput變量被我放在最後一行,試圖調整它。 –