Chúng ta vẫn thường nhìn thấy code người ta viết:
Và tất nhiên trường hợp như dưới đây cũng không phải là hiếm:
Vậy tóm lại là có nên thêm .Value khi viết Code hay không?
Khi chúng ta sử dụng Object để thao tác với Excel bằng VBA, nói chung có hai loại như sau:
「Worksheets("Sheet1").Name = "tuhocvba.net"」.
Ngược lại, 「 Đối tượng .Mệnh lệnh」l là chúng ta ra mệnh lệnh nó thực thi một hành động nào đó.
Ví dụ xóa cells thì ta có 「Range("A1").Delete Shift:=xlToLeft」. (Delete: hành động xóa)
Đối với đối tượng (Object) thì ta có thể gọi thuộc tính (property) hay phương thức (method-thực thi hành động) , các bạn cần phân biệt điều này.
Nào, bây giờ trở lại với đối tượng (Object) là Range. Giả sử như ta có Range A1. Với đối tượng này, ta có thuộc tính Value.
Thuộc tính này có thể giản lược, tức là không cần viết khi code. Trong trường hợp bị giản lược, VBA mặc định hiểu là chúng ta đang làm việc với thuộc tính Value của đối tượng Range trong code.
Như vậy sẽ có tranh cãi, là có nên viết Value hay không nên viết vào trong code.
Đối với thế hệ máy tính ngày xưa, việc viết hay không viết sẽ có khác biệt về tốc độ xử lý code (chú ý theo dõi chủ đề
Tuy nhiên với máy tính bây giờ thì không còn khác biệt như thế nữa. Vì vậy, nếu để nói nên viết đầy đủ thuộc tính Value trong code hay không nên viết, thì không có đáp án chính xác rõ ràng nào ở đây.
Vậy thì có người sẽ nghĩ, vậy thì khỏi cần viết Value vào trong code làm gì, đằng nào máy tính cũng tự hiểu.
Tôi nghĩ, trường hợp nào cũng được. Tức là viết hay không viết Value thì đều được. Quan trọng hơn thế, là chúng ta nhận thức được rằng, thuộc tính Value đang được giản lược đi khi gõ code nhưng máy tính vẫn hiểu.
Trong chương trình, phải làm sao có thể thuyết minh tất cả các dòng lệnh. (Mình hiểu rõ tất cả các lệnh để làm gì, mục đích).
Trừ trường hợp copy ở đâu đó về sử dụng ( ) thì đó là điều tệ nhất, chúng ta chẳng hiểu gì cả.
Tự mình nhận thức rằng Value đang được mình giản lược đi, đây là luật của VBA, khi giản lược không viết gì thì mặc định máy tính hiểu sử dụng thuộc tính Value.
Bài viết tham khảo và dịch từ:
Mã:
Sub Sample1()
Range("A1").Value = 100
End Sub
Mã:
Sub Sample2()
Range("A1") = 100
End Sub
Vậy tóm lại là có nên thêm .Value khi viết Code hay không?
Khi chúng ta sử dụng Object để thao tác với Excel bằng VBA, nói chung có hai loại như sau:
- Đối tượng.Thuộc_tính = Giá trị
- Đối tương.Mệnh lệnh Option := Giá trị
「Worksheets("Sheet1").Name = "tuhocvba.net"」.
Ngược lại, 「 Đối tượng .Mệnh lệnh」l là chúng ta ra mệnh lệnh nó thực thi một hành động nào đó.
Ví dụ xóa cells thì ta có 「Range("A1").Delete Shift:=xlToLeft」. (Delete: hành động xóa)
Đối với đối tượng (Object) thì ta có thể gọi thuộc tính (property) hay phương thức (method-thực thi hành động) , các bạn cần phân biệt điều này.
Nào, bây giờ trở lại với đối tượng (Object) là Range. Giả sử như ta có Range A1. Với đối tượng này, ta có thuộc tính Value.
Thuộc tính này có thể giản lược, tức là không cần viết khi code. Trong trường hợp bị giản lược, VBA mặc định hiểu là chúng ta đang làm việc với thuộc tính Value của đối tượng Range trong code.
Như vậy sẽ có tranh cãi, là có nên viết Value hay không nên viết vào trong code.
Đối với thế hệ máy tính ngày xưa, việc viết hay không viết sẽ có khác biệt về tốc độ xử lý code (chú ý theo dõi chủ đề
Bạn cần đăng nhập để thấy link
mà chúng tôi đang dịch-trường hợp không viết Value cho tốc độ nhanh hơn với dòng máy tính cũ ngày xưa).Tuy nhiên với máy tính bây giờ thì không còn khác biệt như thế nữa. Vì vậy, nếu để nói nên viết đầy đủ thuộc tính Value trong code hay không nên viết, thì không có đáp án chính xác rõ ràng nào ở đây.
Vậy thì có người sẽ nghĩ, vậy thì khỏi cần viết Value vào trong code làm gì, đằng nào máy tính cũng tự hiểu.
Tôi nghĩ, trường hợp nào cũng được. Tức là viết hay không viết Value thì đều được. Quan trọng hơn thế, là chúng ta nhận thức được rằng, thuộc tính Value đang được giản lược đi khi gõ code nhưng máy tính vẫn hiểu.
Trong chương trình, phải làm sao có thể thuyết minh tất cả các dòng lệnh. (Mình hiểu rõ tất cả các lệnh để làm gì, mục đích).
Trừ trường hợp copy ở đâu đó về sử dụng ( ) thì đó là điều tệ nhất, chúng ta chẳng hiểu gì cả.
Tự mình nhận thức rằng Value đang được mình giản lược đi, đây là luật của VBA, khi giản lược không viết gì thì mặc định máy tính hiểu sử dụng thuộc tính Value.
Bài viết tham khảo và dịch từ:
Bạn cần đăng nhập để thấy link