我已经录制了一个简单的宏,我需要将其制作成通用的宏,因此它可以用于任何行和最后四个单元格。这是我录制的版本:
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
结束子
我该怎么做
- 让它转到我将光标放入的行的最后一个单元格?
- 将单元格特定范围更改为仅意味着:选择此单元格以及左侧另外 3 个单元格的范围?
...我想我几乎可以管理选择.copy :)
非常感谢 迈克
最佳答案
这将复制您点击的任何行中的最后四个单元格:
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
更新 - 如果您的行包含损坏的数据,那么最好的方法是从电子表格的最后一列(第四列)开始,然后返回。要实现此目的,请将 lastCell
语句替换为以下内容:
Set lastCell = Cells(Selection.Row, 256).End(xlToLeft)
关于vba - Excel宏: make a recorded one less cell specifc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4387751/