2008-11-15 74 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 
相關問題