2013-04-10 56 views

Trả lời

20

Sự khác biệt là sự linh hoạt của chúng.

Activate làm cho tờ quy định bảng hoạt động, và chỉ có thể được áp dụng cho một tờ đơn

Select cho phép tùy chọn mở rộng bảng hiện đang được chọn để bao gồm các tờ quy định, ví dụ như

Worksheets("Sheet2").Select Replace:=False 

và cũng cho phép chọn một mảng trang tính

Sheets(Array("Sheet3", "Sheet2")).Select 

Ở dạng tối thiểu SelectActivate làm điều tương tự.

Ví dụ, nếu chỉ có một tấm được chọn hiện thời (nói Sheet3) hoặc nếu có nhiều hơn một tấm được chọn nhưng trừ nói Sheet2, sau đó Worksheets("Sheet2").SelectWorksheets("Sheet2").Activate cả làm Sheet2 bảng duy nhất được lựa chọn và tích cực.

Mặt khác, nếu nói cả Sheet2Sheet3 được lựa chọn và Sheet2 là tấm hoạt động, sau đó Worksheets("Sheet3").Activate lá cả tấm lựa chọn và làm cho Sheet3 bảng hoạt động, trong khi Worksheets("Sheet2").Select làm Sheet3 bảng duy nhất được lựa chọn và tích cực.

+0

+1 chi tiết đẹp @chris – glh

+0

Tôi nghĩ rằng tôi phải thêm rằng có vẻ như có sự khác biệt giữa: a) Trang tính (Mảng ("Sheet2", "Sheet3")). Chọn và b) Trang tính (Mảng ("Sheet3", "Sheet2")) Chọn => Trong a) "Sheet2" được kích hoạt sau đó, trong b) "Sheet3" được kích hoạt sau đó. => Luôn là người đầu tiên trong danh sách. – jreichert

12

.activate là bạn nhấp vào tab trang tính.

.select mô phỏng bạn thực hiện kiểm soát và nhấp vào tab. Trong VBA bạn chưa có trong trang tính.

Bạn có thể .select nhiều trang tính nhưng chỉ .activate.

0

Để mở rộng ở trên: Khi mã bên dưới được chạy với Thay thế: = False, không có sự kiện hủy kích hoạt trang tính nào xảy ra trên trang tính4. Nếu Thay thế: = True được sử dụng thay thế thì sự kiện khử kích hoạt sẽ kích hoạt.

Ngăn sự kiện xảy ra trong hầu hết các trường hợp vì nó có thể gây ra hành vi không mong muốn.

Điều này có nghĩa là chọn chỉ tương đương với CTRL + Nhấp vào tab trang tính NẾU thay thế: = false được sử dụng.

phụ một

Dim rng As Range 

Sheet4.Select Replace:=False 
Set rng = Selection 

Sheet5.Select Replace:=True 
Selection = rng.Value 

end sub

Cám ơn bài viết của bạn vì nó giúp tôi hiểu sự khác biệt.

Harvey

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