我已经记录了一个简单的宏,我需要将其制作成通用的,所以它可以用于任何行和最后四个单元格。这是我的回收版本:
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToRight).Select
Selection.End(xlToLeft).Select
Range("Q12:T12").Select
Range("T12").Activate
Selection.Copy
End Sub
我如何
... selection.copy我想我几乎可以管理:)
非常感谢 麦克
答案 0 :(得分:5)
这将复制您单击的任何行中的最后四个单元格:
Sub CopyLastFourCellsOfRow()
Dim lastCell As Range
Dim rngToCopy As Range
Set lastCell = Selection.End(xlToRight)
Set rngToCopy = Range(lastCell, lastCell.Offset(0, -3))
rngToCopy.Copy
End Sub
更新 - 如果您的行已破坏数据,那么最佳方法是从电子表格的最后一列(第IV列)开始,然后再返回。要实现此目的,请使用以下内容替换lastCell
语句:
Set lastCell = Cells(Selection.Row, 256).End(xlToLeft)
答案 1 :(得分:4)
您实际上可以在一次快速行动中执行您所询问的各个步骤。 要使其转到当前行中的最后一个单元格,只需使用ActiveCell.End(xlToRight)。 (使用'ActiveCell',因为当仅选择一个单元格时,它等同于'选择',但即使选择了多个单元格也能正常工作。)
Range(ActiveCell, ActiveCell.Offset(0, -3)).Select
将选择当前单元格,并在左侧选择3个单元格。请注意,您不需要在单独的步骤中执行“Selection.Copy”。你可以简单地去:
Range(ActiveCell, ActiveCell.Offset(0, -3)).Copy