避免使用复制和粘贴 VBA 选择

TDJ*_*TDJ 2 excel vba

我正在尝试减少 select 的使用。我一直在参考下面的文章,但我不完全确定如何在这种情况下实现它。为了练习,我有下面的工作代码集,我用它复制 B1 中的值并将其粘贴到 A 列中填充的行数中。如果有人可以指导我如何避免这种坏习惯,以便编写更多内容有效且高效的代码,我将不胜感激!

如何避免在 Excel VBA 中使用 Select

    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)

Jos*_*phC 6

其他人已经为您的代码提供了直接的解决方案。但对于你关于如何避免选择“指导”的问题,这就是正在发生的事情......

将 .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)

偏移函数只是说从指定的范围开始,然后移动指定数量的列或行,并使用此单元格作为参考。