vba - Excel宏: make a recorded one less cell specifc?

标签 vba excel

我已经录制了一个简单的宏,我需要将其制作成通用的宏,因此它可以用于任何行和最后四个单元格。这是我录制的版本:

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/

相关文章:

发生错误时向我发送电子邮件的 VBA 错误处理程序

sql - 如何删除 MS SQL 数据库中最旧的一周(期间)?

vba - UserForm.Caption 有什么问题?

image - 插入Picture类的属性

java - VBA/Excel 到 Java 的 dll/exe

python - 强制 python 脚本不等待 vba 宏终止

sql - 如何使用 ADODB 在一次执行中返回多个记录集?

c# - 使用c#从excel文件中删除行

c# - 有没有办法以编程方式将数据列表从sharepoint下载到excel

excel - 确定某些数据范围的不重叠天数