在Excel Vba中选择最后8行

L.J*_*J.G 2 excel vba row excel-vba

我想选择x行数的最后8行(每月的金额变化),这里有一个线程,但只有一列.我需要几个列,并尝试了两种不同的方法,但由于语法,两者都不起作用.

Sheets("Sheet2").Select
LastRow = Range("D" & Rows.Count).End(xlUp).Row
Set Last8Rows =  Range("A" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8aRows = Range("B" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8bRows = Range("C" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8cRows = Range("D" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8dRows = Range("E" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8eRows = Range("F" & LastRow).Offset(-7, 0).Resize(8, 1)
Set Last8fRows = Range("G" & LastRow).Offset(-7, 0).Resize(8, 1)
LastxRows = Last8Rows + Last8aRows + Last8bRows + Last8cRows + Last8dRows + Last8eRows + Last8fRows
LastxRows.Copy
Run Code Online (Sandbox Code Playgroud)

我的第二次尝试

Sheets("Sheet2").Select
LastRow = Range("D" & Rows.Count).End(xlUp).Row
Set Last8Rows =  Range("A:D" & LastRow).Offset(-7, 0).Resize(8, 1)
Last8Rows.Copy
Run Code Online (Sandbox Code Playgroud)

Sha*_*ado 5

尝试下面的代码(不需要工作Select表来复制它):

Option Explicit

Sub Copy_LastEight_Rows()

Dim Sht2            As Worksheet
Dim LastRow         As Long
Dim Last8Rows       As Range

Set Sht2 = ThisWorkbook.Sheets("Sheet2")

LastRow = Sht2.Range("D" & Sht2.Rows.Count).End(xlUp).Row

' modify Column D to your need
Set Last8Rows = Sht2.Range("A" & LastRow - 7 & ":D" & LastRow)
Last8Rows.Copy

End Sub
Run Code Online (Sandbox Code Playgroud)

  • 答:您假设最后一列将是"d"?:) B.过去的8行,你需要一个`-7`而不是`-8` C.你是假设所有列将具有相同的最后一排? (2认同)
  • ++现在它更有意义:) (2认同)