Trong VBA cho Excel, sự khác nhau giữa Sheets.Select
và Sheets.Activate
là gì?Sự khác nhau giữa Sheets.Select và Sheets.Activate là gì?
Trả lời
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 Select
và Activate
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").Select
và Worksheets("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ả Sheet2
và Sheet3
đượ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.
+1 chi tiết đẹp @chris – glh
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
.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
.
Để 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
- 1. Sự khác nhau giữa WPF và WinForms là gì?
- 2. Sự khác nhau giữa JavaScript và Java là gì?
- 3. Sự khác nhau giữa ODBC và OleDB là gì?
- 4. Sự khác nhau giữa SGML và XML là gì?
- 5. Sự khác nhau giữa DefaultSelenium và RemoteWebDriver là gì?
- 6. Sự khác nhau giữa RMI và Corba là gì?
- 7. Sự khác nhau giữa scgi và wsgi là gì?
- 8. Sự khác nhau giữa wsHttpBinding và ws2007HttpBinding là gì?
- 9. Sự khác nhau giữa Pingback và Trackback là gì?
- 10. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 11. Sự khác nhau giữa AxInterop và Interop là gì?
- 12. Sự khác nhau giữa CellClick và CellMouseClick là gì?
- 13. Sự khác nhau giữa .bashrc, .bash_profile và .environment là gì?
- 14. Sự khác nhau giữa JSP và Facelets là gì?
- 15. Sự khác nhau giữa hg quên và hg là gì?
- 16. Sự khác nhau giữa GDI và GDI + là gì?
- 17. Sự khác nhau giữa đá quý và plugin là gì?
- 18. Sự khác nhau giữa metaClass.methods và metaClass.metaMethods là gì?
- 19. Sự khác nhau giữa kEND và $ end là gì?
- 20. Sự khác nhau giữa java và jsp là gì?
- 21. Sự khác nhau giữa Application.Run() và Form.ShowDialog() là gì?
- 22. Sự khác nhau giữa -0 và 0 là gì?
- 23. Sự khác nhau giữa HTTP 1.0 và 1.1 là gì?
- 24. Sự khác nhau giữa java.lang.Math và java.lang.StrictMath là gì?
- 25. Sự khác nhau giữa " " và "" là gì?
- 26. Sự khác nhau giữa Spring BeanFactoryAware và ApplicationContextAware là gì?
- 27. sự khác nhau giữa SCRIPT_FILENAME và SCRIPT_NAME là gì?
- 28. Sự khác nhau giữa JSP và JSTL là gì?
- 29. Sự khác nhau giữa JSF và Facelets là gì?
- 30. Sự khác nhau giữa javax.inject.Inject và com.google.inject.Inject là gì?
http://msdn.microsoft.com/en-us/library/x62t5306%28v=vs.80%29.aspx –
Bạn cũng có thể muốn xem điều này ... http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select/10718179#10718179 –