簡體   English   中英

Excel VBA復制並粘貼到另一個工作表中的下一個空白行

[英]Excel VBA Copying and Pasting into Next Blank Row in Another Sheet

我正在嘗試僅使用擊鍵錄制宏,但在我最后一次擊鍵時遇到了一個問題,因為它沒有按照我的預期工作。 我正在做的一些背景知識 - 我正在處理不斷增長的數據和滾動圖來繪制最后 4 行數據。 我正在嘗試從一張工作表中復制數據並將其粘貼到另一張工作表中表格的下一個空行。 因為我使用的是擊鍵,所以我希望宏記錄點擊次數,但這不是它所做的。 相反,它會將數據粘貼到記錄宏的確切單元格上,而不是其下方的空單元格上。 例如,我已經在 C19 中有數據。 當我運行宏時,我希望它將新數據粘貼到 C20 中,而不是粘貼到 C19 上。 我想我需要添加/編輯我的 VBA,以便它將新數據粘貼到另一個工作表的下一個空行中。 我希望這是有道理的。 任何幫助將不勝感激!

謝謝!!

Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range("C3").Select
ActiveCell.FormulaR1C1 = "=DATE(YEAR(RC[-1]), MONTH(RC[-1])+1, DAY(RC[-1]))"
Range("C3").Select
Selection.Copy
Range("B3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
Range("C3").Select
Application.CutCopyMode = False
Selection.ClearContents
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("B85:K146").Select
Selection.Copy
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlUp).Select
Range("B9").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
Range("A1").Select
ActiveSheet.Next.Select
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Range("E71:G71").Select
Application.CutCopyMode = False
Selection.Copy
Range("A1").Select
ActiveSheet.Next.Select
Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Selection.End(xlUp).Select
Selection.End(xlUp).Select
Selection.End(xlDown).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Range("C5").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Range("C19").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

結束子

正如其他人評論的那樣,最好閱讀如何直接編碼而不是記錄宏。 作為一個快速修復,雖然這應該會有所幫助:

替換這個:

Range("C19").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

有了這個:

Cells(Range("C1000000").End(xlUp).Row + 1, 3).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False

.End(xlUp) 的作用是從第 1,000,000 行向上查找包含某些內容的第一個單元格。 .Row 獲取它所在的行,+ 1 表示我們想要下一行。 Cells是Range的另一種表達方式,在線查找Range和Cell,它會對你有所幫助。

暫無
暫無

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

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