Ban đầu code VBA, trong đầu nghĩ như thế nào thì sẽ code như thế. Vì vậy cách tiếp cận VBA của từng người sẽ khác nhau.
Ví dụ, một người đã quen sử dụng hàm trên excel, anh ta sẽ nghĩ thay thế hàm đó trên excel bằng VBA sẽ như thế nào. Điều này không phải là không tốt. Lấy ví dụ, đảo chiều mảng, anh ta sẽ biết sử dụng Transpose, hoặc tìm kiếm, anh ta sẽ biết dùng Vlookup hoặc Find. Những lệnh này về cơ bản là nhanh, nhưng hạn chế là không giúp mọi người hiểu rõ logic.
Chẳng hạn để tìm trên cột A xem cells nào có giá trị là "tuhocvba" thì anh có thể dùng Find.
Nhưng logic toán cuả nó sẽ là:
Nhìn vào code này, không ai là không hiểu logic của nó. Tôi nghĩ, đối với người tự học, nên đi theo hướng này. Chúng ta nên tiếp cận VBA bằng logic trước.
Nếu có thêm hiểu biết về tính năng, hay hàm, tốc độ chương trình có thể được cải thiện.
Cách code như trên có thể áp dụng tổng quát cho các trường hợp khác, dò tìm từng chút một, tốc độ có thể không nhanh, nhưng luôn luôn đúng, và cũng chẳng bao giờ xảy ra lỗi ngoài ý muốn.
Trên diễn đàn của chúng ta, trong list video tự học VBA, ngay trong những video đầu tiên, chúng tôi đã phải suy nghĩ cho vấn đề nào lên trước. Nó phải là thứ logic dễ hiểu, và có thể áp dụng ở nhiều chương trình.
Sau đó mới là cải thiện tốc độ ra sao, có thể dùng những lệnh nào thay thế thì nên được trình bày sau.
Người hỗ trợ nếu phán đoán được kiến thức của người hỏi ở vị trí nào, đưa ra code support phù hợp với khả năng hiểu biết của họ, được coi là lý tưởng. Nếu một người lơ tơ mơ, nếu như sử dụng các lệnh phức tạp, họ sẽ chẳng hiểu gì, nếu code không có comment, thì họ lại càng chẳng hiểu gì. Vậy là điều chúng ta giúp đỡ sẽ giảm đi rất nhiều ý nghĩa.
Như thế nào là hỗ trợ tốt, đó là người nhận hiểu được logic, không cần biết nhanh hay chậm ra sao, sau đó họ có thể tự làm đối với những vấn đề tương tự trong tương lai.
Tôi nhớ chương trình tôi làm, chạy hết 30 phút. Chẳng sao cả, trước đó công việc của tôi có thể hết đến cả ngày.
Tôi giải hầu hết các yêu cầu bằng suy nghĩ logic, cái nào không biết thì record macro. Tôi cũng không tham gia hỗ trợ code cho ai cả, tôi đọc code và xem trong code đó họ sử dụng lệnh gì mà mình chưa biết. Đó là cách tôi học.
Khi mà có thể tự giải quyết bài toán của mình và vấn đề của người khác, lúc này sẽ diễn ra việc thảo luận trao đổi với những người khác. Nên code như thế nào cho nhanh. Hoặc là nên code như thế nào cho bớt rườm rà.
Ví dụ, một người đã quen sử dụng hàm trên excel, anh ta sẽ nghĩ thay thế hàm đó trên excel bằng VBA sẽ như thế nào. Điều này không phải là không tốt. Lấy ví dụ, đảo chiều mảng, anh ta sẽ biết sử dụng Transpose, hoặc tìm kiếm, anh ta sẽ biết dùng Vlookup hoặc Find. Những lệnh này về cơ bản là nhanh, nhưng hạn chế là không giúp mọi người hiểu rõ logic.
Chẳng hạn để tìm trên cột A xem cells nào có giá trị là "tuhocvba" thì anh có thể dùng Find.
Nhưng logic toán cuả nó sẽ là:
Mã:
For i = 1 to 100 step 1
if cells(i,1).value = "tuhocvba" then
'xử lý của bạn
end if
Next i
Nếu có thêm hiểu biết về tính năng, hay hàm, tốc độ chương trình có thể được cải thiện.
Cách code như trên có thể áp dụng tổng quát cho các trường hợp khác, dò tìm từng chút một, tốc độ có thể không nhanh, nhưng luôn luôn đúng, và cũng chẳng bao giờ xảy ra lỗi ngoài ý muốn.
Trên diễn đàn của chúng ta, trong list video tự học VBA, ngay trong những video đầu tiên, chúng tôi đã phải suy nghĩ cho vấn đề nào lên trước. Nó phải là thứ logic dễ hiểu, và có thể áp dụng ở nhiều chương trình.
Sau đó mới là cải thiện tốc độ ra sao, có thể dùng những lệnh nào thay thế thì nên được trình bày sau.
Người hỗ trợ nếu phán đoán được kiến thức của người hỏi ở vị trí nào, đưa ra code support phù hợp với khả năng hiểu biết của họ, được coi là lý tưởng. Nếu một người lơ tơ mơ, nếu như sử dụng các lệnh phức tạp, họ sẽ chẳng hiểu gì, nếu code không có comment, thì họ lại càng chẳng hiểu gì. Vậy là điều chúng ta giúp đỡ sẽ giảm đi rất nhiều ý nghĩa.
Như thế nào là hỗ trợ tốt, đó là người nhận hiểu được logic, không cần biết nhanh hay chậm ra sao, sau đó họ có thể tự làm đối với những vấn đề tương tự trong tương lai.
Tôi nhớ chương trình tôi làm, chạy hết 30 phút. Chẳng sao cả, trước đó công việc của tôi có thể hết đến cả ngày.
Tôi giải hầu hết các yêu cầu bằng suy nghĩ logic, cái nào không biết thì record macro. Tôi cũng không tham gia hỗ trợ code cho ai cả, tôi đọc code và xem trong code đó họ sử dụng lệnh gì mà mình chưa biết. Đó là cách tôi học.
Khi mà có thể tự giải quyết bài toán của mình và vấn đề của người khác, lúc này sẽ diễn ra việc thảo luận trao đổi với những người khác. Nên code như thế nào cho nhanh. Hoặc là nên code như thế nào cho bớt rườm rà.