2008-11-15 270 views
17

当我在使用range.copy和range.paste之后创建图形时,它会保留选定的粘贴范围,然后当我在几行后创建一个图形时,它会使用该选择作为图中的第一个系列。我可以删除该系列,但有没有更好的方法来做到这一点?我试过使用VBA编程Excel时,如何将选择设置为Nothing?

Set selection = nothing 

但它不会让我设置选择。我也尝试过selection.clear,但是这只是清除了最后选中的单元格,并且还为剧情添加了一个额外的系列。

+0

为什么不选择第一个系列? – 2010-10-26 11:35:00

回答

18
Cells(1,1).Select 

它会带你到单元格A1,从而抵消现有的选择。

+0

我试过了,它仍然为剧情增加了一个额外的系列。有趣的是,我在此之后立即绘制第二张图,并且没有额外的系列。 – Curt 2008-11-16 00:56:05

2

我不认为这可以做到。以下是从Chip Pearson网站上复制的一些代码:http://www.cpearson.com/excel/UnSelect.aspx

UnSelectActiveCell

此过程将删除从选择活动单元格。

Sub UnSelectActiveCell() 
    Dim R As Range 
    Dim RR As Range 
    For Each R In Selection.Cells 
     If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then 
      If RR Is Nothing Then 
       Set RR = R 
      Else 
       Set RR = Application.Union(RR, R) 
      End If 
     End If 
    Next R 
    If Not RR Is Nothing Then 
     RR.Select 
    End If 
End Sub 

UnSelectCurrentArea

此过程将除去含有从选择活动单元格的区域。

Sub UnSelectCurrentArea() 
    Dim Area As Range 
    Dim RR As Range 

    For Each Area In Selection.Areas 
     If Application.Intersect(Area, ActiveCell) Is Nothing Then 
      If RR Is Nothing Then 
       Set RR = Area 
      Else 
       Set RR = Application.Union(RR, Area) 
      End If 
     End If 
    Next Area 
    If Not RR Is Nothing Then 
     RR.Select 
    End If 
End Sub 
0

您可以设置Application.ScreenUpdating = False并选择一个单元格视图,然后将.ScreenUpdating设置为true。这至少不会在当前视图中显示任何选定的单元格。

22
Application.CutCopyMode = False 
+0

Excel 2010 VBA-我想在复制并粘贴vba后取消选择范围(即删除动画的虚线边框)。被接受的解决方案对我来说并不起作用(也好奇地看起来似乎不是OP),但是这个做了。 – 2016-05-15 01:25:07

1

在Excel 2007中,使用select和CutCopyMode属性的组合,可以重置所有选择。它适用于我的用例。

Application.CutCopyMode = xlCopy 
ActiveSheet.Range("A" & lngRow).Select 

问候 Madhur

3

有是选择解决您的问题NOTHING的方式。

  1. 创建一个形状(一个矩形)
  2. 名称它在形状数据库>>>例如:“就绪”
  3. 参考它MYDOC.Shapes(“就绪”),改变能见度为False

当你想要的Excel的SELECT NOTHING做到这一点:

MYDOC.Shapes("Ready").visible=True 
MYDOC.Shapes("Ready").Select 
MYDOC.Shapes("Ready").visible=False 

这个隐藏选择并没有什么在你仍然选择r窗口 PLUS:单词“就绪”显示在您工作表的左上角。

7

只需使用

的SendKeys “{ESC}”

从而取消您的选择。

+0

这是天才。谢谢! – 2016-04-07 14:18:16

+0

似乎无法在Excel 2013上工作 – MusuNaji 2017-04-06 15:38:35

7

选择任何单元格并关闭cutcopymode。

Range("A1").Select 
Application.CutCopyMode = False 
0

Selection(1, 1).Select将只选择您当前选择的左上角的单元格。

0

如果使用一个按钮来调用粘贴过程,请尝试在操作后激活按钮。这个成功清除选择

没有

  • 不必更动隐情
  • 选择另一单元(这是完全的什么问对面)影响剪贴板模式
  • 采用hacky的方式按下逃生,这并不总是工作

HTH

Sub BtnCopypasta_Worksheet_Click() 
    range.copy 
    range.paste 
BtnCopypasta.Activate 
End sub 

HTH

0

尝试所有的建议,没有运气,但这里的一个想法,为我工作 再次选择单元格出你的选择范围(比如AAA1000000) ,然后选择A1

范围( “AAA1000000”)。激活

范围( “A1”)。激活

盖伊

1

我在Excel 2013中遇到过这个问题。我有“冻结窗格”集,导致了问题。当我移除冰冻窗格时,问题得到解决。

2

您可以简单地在末尾使用此代码。 (请勿使用False)

Application.CutCopyMode = True