- Mới xem phần khai báo biến thôi mà mình đã thấy có nhiều kiểu khai báo có trên các bài viết của các thành viên mà không có nguồn tài liệu để xem.
- Về cấu trúc câu lệnh, muốn viết được thì phải là người có tư duy tốt về thuật toán mới có thể giải được. chưa kể mới học còn hay việt sai cú pháp. chương trình chẳng thể chạy.
- Các Thầy trên diễn đàn thông cảm giùm em. Em đành phải lười biếng vậy vì muốn học cũng khó. Có bài không làm được lại làm phiền các Thầy trên diễn đàn. ''Thụ động quá'' híc híc
Bạn lập trình VBA hay trong VB, Pascal (Delphi) hay ngôn ngữ nào chăng nữa thì bạn vẫn phải
đọc help. Bạn cứ hỏi bất cứ ai thì người ta cũng nói thế. Hỏi bạn bè là thỉnh thoảng thôi chứ help luôn là số 1, luôn phải đọc.
Bạn xin được việc vào xưởng mộc thì trước tiên bạn phải tìm hiểu trong xưởng nọ có những công cụ gì, mỗi công cụ để làm gì, học cách sử dụng nó. Trong tương lai có thể bạn sẽ làm bàn, ghế v...v nhưng sử dụng búa, cưa như thế nào bạn phải nắm được. Tương tự bạn phải tìm hiểu: có những kiểu dữ liệu thế nào, cách khai báo, ngôn ngữ có những cấu trúc gì (FOR, IF, SELECT, Do ... Loop ...) chúng dùng để làm gì, cú pháp ra sao. Nắm được những cái cơ bản, hiểu được công cụ mà mình có rồi thì mới có thể thử viết code hoặc phân tích code của người khác. Không thể đốt cháy giai đoạn được. Cơ bản phải có. Và thực ra chả cần mua sách của ai cả. Help và các code cũng như những giải thích có thể tìm được trên mạng. Hãy đọc help vì ai lập trình cũng đều phải đọc help. Có gì chưa hiểu mới hỏi.
Vậy theo tôi:
1. Nắm được các kiểu dữ liệu và cách khai báo
2. Nắm được các cấu trúc của ngôn ngữ, tức triết lý của chúng. Hiểu được bản chất là quan trọng nhất. Cú pháp thì nếu ban đầu chưa nhớ thì luôn có thể tra trong help, viết nhiều sẽ nhớ. Cái quan trọng là hiểu được chúng.
3. Biết được các hàm có sẵn trong ngôn ngữ. Vd. Alt + F11 --> View --> Object browser --> trong combobox hiện có <All libraries> chọn VBA --> ở ListBox ở nửa bên phải click từng mục và tìm đọc, vd. bằng cách click button "dấu hỏi vàng" cùng dòng với combobox ở trên.
Khi đã có khái niệm về những cái trên thì phải thực hành. Ban đầu nên đọc các ví dụ đơn giản, code ngắn. Tự mình thử viết code. Dù viết được hay không thì cũng nên tham khảo code của người khác nếu có. Phân tích từng dòng code, xem người ta khai báo biến như thế nào, dùng những cấu trúc gì. Thử nghĩ xem có hợp lý không, có thể dùng cách khác không. Khi đọc một code thì phải xem từng dòng, hiểu được code đó cụ thể từng bước làm cái gì. Có như thế mới có thể nghĩ tới chuyện thử "đi" bằng con đường khác. Có như thế mới là học. Hiểu được người ta làm gì, làm thế nào, đôi khi thấy được người ta ra "đòn độc đáo" quá thì mình học được. Thấy người ta phạm lỗi thì mình cũng học được.
Phải thực hành nhiều, tức viết nhiều code.
Tất nhiên để giải quyết vấn đề cụ thể thì trước tiên phải tìm ra thuật toán. Thợ mộc cũng phải giải quyết "thuật toán": làm cái gì trước, cái này ghép với cái kia như thế nào v...v Viết code chẳng qua là mã cái thuật toán đã tìm được. Bạn có giỏi VBA như thế nào nhưng nếu bạn không tìm ra được thuật toán cho vấn đề cần giải quyết thì bạn cũng chả làm được gì. Không phải vô cớ mà người ta cho rằng: "lập trình = thuật toán + csdl". Và cùng một vấn đề nhưng nhiều khi mỗi người nghĩ ra một thuật toán và dùng những hàm, những cấu trúc khác nhau để mã thuật toán đó.
Tôi cho ví dụ. Bạn có 2 số có 10 chữ số. Bạn phải dùng code để xác định xem chúng có 9 chữ số đầu như nhau hay không. Thường thì mọi người sẽ nghĩ: "ta "cắt" từ mỗi số ra 9 chữ số đầu rồi so sánh thôi". Đấy là thuật toán đơn giản cho bài toán đơn giản. Thuật toán như thế đòi hỏi phải dùng các hàm xử lý chuỗi trong quá trình mã, vd. LEFT, MID.
Nhưng bạn cũng có thể nghĩ: liệu có cách khác không nhỉ? Và bạn để ý là: 2 số tự nhiên cùng có k chữ số thì chúng có (k-1) chữ số đầu như nhau
khi và chỉ khi trị tuyệt đối của hiệu 2 số đó < 10. Đó cũng là thuật toán, và để mã thuật toán đó thì bạn phải dùng ABS. Thế thôi.
Tất nhiên đã nói đến thuật toán là nói tới tư duy. Không phải muốn là có hoặc có ngay.
Tóm lại muốn giải quyết một vấn đề cụ thể thì bạn phải: tìm ra thuật toán, tức các bước cần làm để đi tới đích (chia bài toán thành các bài toán nhỏ), rồi dùng các cấu trúc trong ngôn ngữ để mã thuật toán đó. Số các kiểu dữ liệu, số các cấu trúc là hữu hạn. Triết lý của mỗi cấu trúc cũng dễ hiểu. 3 điểm tôi nêu trên ai cũng có thể nắm được. Cái khó nhất là thuật toán. Bạn có mua 10 sách ABC VBA cũng thế thôi. Thường thì người ta giới thiệu 3 điểm tôi nêu trên chứ không dạy tư duy. Nếu bạn học toán không kém thì bạn có tư duy tốt. Lúc đó thì bạn dễ tìm ra thuật toán hơn người tư duy kém.