我正在复制并粘贴一个范围。我遇到的问题是,一旦宏运行,我仍然选择了范围。如何删除绿色矩形..."取消选择" ??我正在使用的代码是:
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
但这似乎不起作用。
我真的很感激一些帮助! 谢谢!
答案 0 :(得分:0)
简单的解决方案 - 首先避免使用Select
和Copy
或Paste
...
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的两个主要选择是:
.Copy
和.PasteSpecial
方法(将四行代码减少为一行): Range("O" & (34 - x) & ": V" & (34 - x)).copy Range("O" & (35 - x) & ": V" & (35 - x))
Range("O" & (35 - x) & ": V" & (35 - x)) = Range("O" & (34 - x) & ": V" & (34 - x))