取消选择范围

时间:2016-06-09 13:05:36

标签: excel vba select range

我正在复制并粘贴一个范围。我遇到的问题是,一旦宏运行,我仍然选择了范围。如何删除绿色矩形..."取消选择" ??我正在使用的代码是:

        For x = 0 To 10
        Range("O" & (34 - x) & ": V" & (34 - x)).Copy
        NextRow = ("O" & (35 - x) & ": V" & (35 - x))
        Range(NextRow).Select
         ActiveSheet.Paste
        Next x

我试过了:

        Application.CutCopyMode = False

但这似乎不起作用。

我真的很感激一些帮助! 谢谢!

3 个答案:

答案 0 :(得分:0)

简单的解决方案 - 首先避免使用SelectCopyPaste ...

For x = 0 To 10    
    NextRow = ("O" & (35 - x) & ": V" & (35 - x))
    Range(NextRow).Value = Range("O" & (34 - x) & ": V" & (34 - x)).Value
Next x

答案 1 :(得分:0)

将行放在宏的开头:

Set objInitSel = ActiveSheet.Selection

在宏的最后:

objInitSel.Select

答案 2 :(得分:0)

正如@Dave已经提到的那样,您最好避免使用.Select属性。

This question并且它的答案很好地解释了如何避免使用select以及您应该避免使用select的原因。

主要是:效率低下和错误的原因。

使用select的两个主要选择是:

  1. 直接使用范围内的.Copy.PasteSpecial方法(将四行代码减少为一行):
  2. Range("O" & (34 - x) & ": V" & (34 - x)).copy Range("O" & (35 - x) & ": V" & (35 - x))

    1. 将一个范围的值分配给另一个范围:
    2. Range("O" & (35 - x) & ": V" & (35 - x)) = Range("O" & (34 - x) & ": V" & (34 - x))

相关问题