使用lastcol&lastrow将信息从一张纸复制并粘贴到另一张纸上
我知道复制和粘贴不是一个推荐的方法,但是我们正在继续。 我目前在每张纸上都有大量的数据。 当我从行中复制数据(Works完美)时,我正在避免最后一行。 而当我复制栏目(作品完美)时,我正在避开最后一栏。
LASTROW:
Lastrow = Cells(Rows.count, "A").End(xlUp).Row - 1
LastColumn:
With ActiveSheet lastcol = .Cells(4, .Columns.count).End(xlToLeft).Column - 1 End With
我现在需要现在复制数据。 我可以很好地复制行。 然而,这些专栏是我陷入困境的地方。 我对复制/粘贴方法很陌生,我不确定如何去解决这个问题,因为我总是使用一系列单元格名称。
这将给我所需的行,以及所有需要的列,因为我正在复制过去的最后一列。
Sheets("Sheet2").Range("A4:AZ" & Lastrow).Copy Sheets(PlantArr(e)).Range("A1") 'Copy info to new sheet
我怎样才能转换这样的AZ实际上是最后一列需要? 是否有一个简单的方法来解决这个问题,或者我需要build立一个案例,将列号转换为单元格值?
回答:
gAddress = Split(Cells(1, lastcol).Address(True, False), "$") 'Converts Lastcol number into alphabet character letter = gAddress(0) Sheets("Sheet2").Range("A4:" & letter & Lastrow).Copy Sheets(PlantArr(e)).Range("A1") 'Copy info to new sheet
经过一番挖掘,我发现你可以从列值中取出一个地址。 我希望下面的代码可以帮助任何想要将列号转换为字母列的人。
Dim gAddress gAddress = Split(Cells(1, lastcol).Address(True, False), "$") letter = gAddress(0)
可以通过明确指定哪些单元格构成该范围来指定复制范围。 使用'与',你可以写这样的事情来完成你所需要的东西:
Sub copy_col_and_rows() Dim Lastrow As Integer: Dim lastcol As Integer: With ActiveSheet Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row - 1 lastcol = .Cells(4, Columns.Count).End(xlToLeft).Column - 1 End With With Sheets("Sheet2") .Range(.Cells(1, 4), .Cells(Lastrow, lastcol)).Copy Destination:=Sheets(PlantArr(e)).Range("A1") 'Where .Cells(1,4) corresponds to "A4" End With End Sub