3

我是一线技术人员。对宏编码并不陌生,但我的大部分经验都是在 WordPerfect 宏中。我正在尝试编写一个 Excel 宏,该宏将选择并作用于一系列文件中的一个范围。所需的范围在一组恒定的列中,但在一组可变的行中。静态值标记开始行和结束行,但这些行将随每个数据文件而变化。

我遇到的问题是,当我录制宏时,XL 不会记录我的光标移动(Ctrl-Up、Ctrl-Shift-Home 等),它会记录我正在操作的绝对单元格地址。由于每个数据文件的起始行和结束行会有所不同,因此绝对单元格引用将不起作用。任何人都可以提供任何关于我可以/应该如何处理这个问题的提示吗?

在此先感谢,詹姆斯

4

2 回答 2

3
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
于 2012-10-16T20:23:17.423 回答
2

首先,蒂姆的回答非常简洁 - 你应该知道的另一件很酷的事情是记录一个带有相关引用的宏 - http://support.microsoft.com/kb/213740

您面临的挑战是,当您录制宏时,它默认为绝对引用,如果您按下相对引用按钮,您将得到您正在寻找的结果。

希望这也有帮助!

于 2012-10-16T20:39:38.317 回答