簡體   English   中英

如何使用粘貼值將其復制並粘貼到下一個可用行?

[英]How to copy and paste on to next available row, with paste values?

新手問題! 如果這是一個很明顯的答案,我很抱歉,只是學習如何有效地編碼。 我一直在嘗試使用不同的代碼將數據復制並粘貼到另一張已轉置的excel工作簿中,該工作簿正在運行。 但是,它似乎沒有粘貼值,也無法將其粘貼到下一個可用行。 我已經找到了命令,但是不確定按什么順序插入它們,似乎只是出現了錯誤。

這是我當前的工作代碼,減去粘貼到下一個可用行的命令:

Dim lastRow As Long
Workbooks("CSA V0.3.xlsx").Worksheets("CSA - TL").Range("B2:B5").SpecialCells(xlCellTypeVisible).Copy
Workbooks("TL CSA Master.xlsx").Worksheets("Master").Range("A3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

Workbooks("CSA V0.3.xlsx").Worksheets("CSA - TL").Range("G9:G28").SpecialCells(xlCellTypeVisible).Copy
Workbooks("TL CSA Master.xlsx").Worksheets("Master").Range("E3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

我在哪里插入代碼,以便每次運行代碼時都將值粘貼到下一個可用行上? 提前致謝!

您需要首先找到最后使用的行:

Dim LastRow As Long
With Workbooks("TL CSA Master.xlsx").Worksheets("Master")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 'find last used row in Column A

    Workbooks("CSA V0.3.xlsx").Worksheets("CSA - TL").Range("B2:B5").SpecialCells(xlCellTypeVisible).Copy
    .Cells(LastRow + 1, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

    Workbooks("CSA V0.3.xlsx").Worksheets("CSA - TL").Range("G9:G28").SpecialCells(xlCellTypeVisible).Copy
    .Cells(LastRow + 1, "E").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With

甚至更好:

Dim wsDest As Worksheet
Set wsDest = Workbooks("TL CSA Master.xlsx").Worksheets("Master")

Dim wsSrc As Worksheet
Set wsSrc = Workbooks("CSA V0.3.xlsx").Worksheets("CSA - TL")

Dim NextFreeRow As Long
NextFreeRow = wsDest.Cells(wsDest.Rows.Count, "A").End(xlUp).Row + 1 'find next free row in Column A

wsSrc.Range("B2:B5").SpecialCells(xlCellTypeVisible).Copy
wsDest.Cells(NextFreeRow, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

wsSrc.Range("G9:G28").SpecialCells(xlCellTypeVisible).Copy
wsDest.Cells(NextFreeRow, "E").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM