我是一线技术人员。宏编码并不陌生,但我的大多数经验都是在WordPerfect宏中。我正在尝试编写一个Excel宏,它将选择并处理一系列文件中的范围。所需范围是一组常量列,但是是一组可变行。静态值标记起始行和结束行,但这些行将随每个数据文件而变化。
我遇到的问题是,当我录制宏时,XL不会记录我的光标移动(Ctrl-Up,Ctrl-Shift-Home等),它会记录我正在处理的绝对单元格地址。由于起始行和结束行将随每个数据文件而变化,因此绝对单元格引用将不起作用。任何人都可以提供关于我如何/应该如何处理的任何提示?
提前致谢, 詹姆斯
答案 0 :(得分:2)
Dim rng as Range
With ActiveSheet
'Ctrl+Arrow
Set rng = .Range("A10000").End(xlUp) 'CTRL+Up arrow
Set rng = .Range("A1").End(xlDown) 'CTRL+Down arrow
Set rng = .Range("Z1").End(xlToLeft) 'CTRL+Left arrow
Set rng = .Range("A1").End(xlToRight) 'CTRL+Right arrow
'Ctrl+Shift+Arrow
Set rng = .Range(.Range("A1"),.Range("A1").End(xlDown))
Set rng = .Range(.Range("A1"),.Range("A1").End(xlToRight))
End With
答案 1 :(得分:2)
首先,蒂姆的答案非常简洁 - 你应该知道的另一个很酷的事情是录制一个带有相对参考的宏 - http://support.microsoft.com/kb/213740
您的挑战是当您录制宏时,默认为绝对参考,如果您按下相对参考按钮,您将获得您正在寻找的结果。
希望这也有帮助!