2008-11-15 54 views
17

Khi tôi tạo một biểu đồ sau khi sử dụng range.copy và range.paste nó rời khỏi phạm vi dán được chọn, và sau đó khi tôi tạo một biểu đồ một vài dòng sau, nó sử dụng lựa chọn làm chuỗi đầu tiên trong cốt truyện. Tôi có thể xóa loạt bài này, nhưng có cách nào thanh lịch hơn để làm điều này không? Tôi đã thửLàm cách nào để đặt lựa chọn thành Không có gì khi lập trình Excel bằng VBA?

Set selection = nothing 

nhưng nó sẽ không cho phép tôi đặt lựa chọn. Tôi cũng đã thử selection.clear, nhưng điều đó chỉ xóa các ô cuối cùng đã được chọn và vẫn thêm một chuỗi phụ vào cốt truyện.

+0

Tại sao không chỉ chọn chuỗi đầu tiên? –

Trả lời

18
Cells(1,1).Select 

Nó sẽ đưa bạn đến ô A1, do đó hủy bỏ lựa chọn hiện tại của bạn.

+0

Tôi đã thử điều này và vẫn thêm chuỗi phụ vào cốt truyện. Điều thú vị là, tôi vẽ đồ thị thứ hai ngay lập tức sau này, và nó không có thêm chuỗi. – Curt

2

Tôi không nghĩ rằng điều này có thể được thực hiện. Dưới đây là một số mã được sao chép không có sửa đổi từ trang web của Chip Pearson: http://www.cpearson.com/excel/UnSelect.aspx.

UnSelectActiveCell

Quy trình này sẽ xóa ô hiện hoạt khỏi lựa chọn.

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

Thủ tục này sẽ loại bỏ khu vực có chứa các tế bào tích cực từ Selection.

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

Bạn có thể đặt Application.ScreenUpdating = False và chọn một ô không xem và sau đó đặt .ScreenUpdating thành true. Điều này ít nhất sẽ không hiển thị bất kỳ ô được chọn nào trong chế độ xem hiện tại.

22
Application.CutCopyMode = False 
+0

Excel 2010 VBA- Tôi muốn bỏ chọn một phạm vi (ví dụ: loại bỏ đường viền đứt nét động) sau khi sao chép và dán nó vào vba. Các giải pháp được chấp nhận đã không làm việc cho tôi (cũng không tò mò cho OP nó sẽ có vẻ ??) Nhưng điều này đã làm. –

1

Trong Excel 2007, kết hợp sử dụng thuộc tính chọn và CutCopyMode, bạn có thể đặt lại tất cả các lựa chọn. Nó làm việc cho trường hợp sử dụng của tôi.

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

Trân Madhur

3

Có một cách để CHỌN NOTHING rằng giải quyết vấn đề của bạn.

  1. Tạo hình (một hình chữ nhật)
  2. Tên nó trong cơ sở dữ liệu Shapes >>> ví dụ: "Sẵn sàng"
  3. Tham khảo nó MYDOC.Shapes ("Sẵn sàng") và thay đổi tầm nhìn False

Khi bạn muốn điều đó Excel cHỌN NOTHING làm điều đó:

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

này HIDE lựa chọn và không có gì vẫn được chọn trong bạn r cửa sổ PLUS: Từ "Sẵn sàng" được hiển thị ở Đầu bên trái trong Trang tính của bạn.

7

Chỉ cần sử dụng

SendKeys "{ESC}"

do đó hủy bỏ lựa chọn của bạn.

+0

Đây là thiên tài. Cảm ơn! –

+0

có vẻ không hoạt động trên Excel 2013 – MusuNaji

7

Chọn bất kỳ ô nào và tắt mã bản cắt.

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

Selection(1, 1).Select sẽ chỉ chọn ô trên cùng bên trái của lựa chọn hiện tại của bạn.

0

Nếu sử dụng nút để gọi quy trình dán,

thử kích hoạt nút sau khi thao tác. điều này sẽ xóa thành công lựa chọn

mà không

  • phải mess xung quanh với những thứ ẩn
  • chọn một tế bào (đó là hoàn toàn ngược lại những gì được yêu cầu)
  • ảnh hưởng đến chế độ vào clipboard
  • có phương pháp tấn công bằng cách nhấn thoát không phải lúc nào cũng hoạt động

HTH

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

HTH

0

Cố gắng tất cả các đề xuất của bạn, không may mắn, nhưng đây là một ý tưởng mà làm việc cho tôi chọn một ô ra khỏi phạm vi lựa chọn của bạn (nói AAA1000000) và sau đó chọn A1 lại

Range ("AAA1000000"). Activate

Range ("A1"). Activate

Guy

1

Tôi gặp sự cố này với Excel 2013. Tôi đã đặt "đóng băng", gây ra sự cố. Sự cố đã được giải quyết khi tôi xóa các khay đã được cố định.

2

Bạn chỉ có thể sử dụng mã này ở cuối. (Không sử dụng False)

Application.CutCopyMode = True 
+0

Không chắc chắn tại sao đây không phải là câu trả lời được chấp nhận. – NapkinBob

Các vấn đề liên quan