从下面的活动文本中select30个单元格,以达到excel vba

你好,我想复制我列B的最后30个单元格。

下面的代码复制到右边,但我希望它只复制列b的最后30个单元格

Sub test() Range(ActiveCell, ActiveCell.Offset(0, 30)).Copy End Sub 

请帮助。 最好的祝福

你可以试试这个:

 With Cells(Rows.Count, "B").End(xlUp) Range(.Cells, .Offset(WorksheetFunction.Max(-.Row + 1, -29))).Copy End With 

并处理的情况下,有不到30个最后的单元格

find列B中的最后一行(包括中间的空行),然后复制范围(从29行下降到find的最后一行)。

注意 :尽量不要使用ActiveCell ,而应使用完全限定的Range

 Dim LastRow As Long LastRow = Cells(Rows.Count, "B").End(xlUp).Row Range("B" & LastRow - 29 & ":B" & LastRow).Copy 

在将来,我强烈build议通过查找所使用函数的参数来解决您的问题。 请参阅以下固定代码:

 Sub test() Range(ActiveCell, ActiveCell.Offset(-29, 0)).Copy End Sub 

单程:

 Sub dural() Dim N As Long N = Cells(Rows.Count, "B").End(xlUp).Row Range("B" & N - 29 & ":B" & N).Copy End Sub