我正在尝试减少 select 的使用。我一直在参考下面的文章,但我不完全确定如何在这种情况下实现它。为了练习,我有下面的工作代码集,我用它复制 B1 中的值并将其粘贴到 A 列中填充的行数中。如果有人可以指导我如何避免这种坏习惯,以便编写更多内容有效且高效的代码,我将不胜感激!
Range("B1").Select
Selection.Copy
ActiveCell.Offset(0, -1).Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.Copy
Range(Selection, "B1").Select
ActiveSheet.Paste
Run Code Online (Sandbox Code Playgroud)
其他人已经为您的代码提供了直接的解决方案。但对于你关于如何避免选择“指导”的问题,这就是正在发生的事情......
将 .Select 视为存储对其所附加内容的引用。
Range("B1").Select
Run Code Online (Sandbox Code Playgroud)
意思是存储对范围的引用:B1。
Selection.Copy
Run Code Online (Sandbox Code Playgroud)
是说使用该引用,并调用函数 Copy
您可以直接访问它,而不是使用引用。
Range("B1").Copy
Run Code Online (Sandbox Code Playgroud)
现在,自从您复制和粘贴以来,您就有了两个不同的参考:源和目的地。因此,您可以直接将值从源应用到目标,而无需调用复制和粘贴功能。
Range(<DestinationRange>).value = Range(<SourceRange>).value
Run Code Online (Sandbox Code Playgroud)
偏移函数只是说从指定的范围开始,然后移动指定数量的列或行,并使用此单元格作为参考。