Bài thực hành VBA đầu tay - Simple Inventory

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi adam_tran, 31 Tháng tám 2005.

6,117 lượt xem

  1. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Đây là file Excel NXT tớ sử dụng VBA, chủ yếu là mày mò để học VBA. Có một số vấn đề sau:
    - File còn rất nhiều lỗi tạm thời chưa khắc phục và chưa dùng được, chỉ mong các bác chỉ giáo.
    - File sử dụng 1 additinal control có tên là Microsoft Date and Time Picker Control Ver 6.0, source của nó là file MSCOMCT2.OCX. File này khá lớn tớ không Upload lên. Có thể Excel của bạn sẽ không có control này.
    - File sử dụng phương pháp bình quân gia quyền tại thời điểm phát sinh.
    - Một số sheet được protect nhưng không có password.
     
    Last edited: 20 Tháng tư 2006
    #1
  2. StonyHeartedMan

    StonyHeartedMan Thành viên sơ cấp

    Bài viết:
    306
    Đã được thích:
    2
    Nơi ở:
    Hà nội
    Good work! Chúc mừng SP đầu tay của adam nhé :)
    Chú ý:
    + Tất cả các hàm, thủ tục, events,... nên có Error handle để tránh xảy ra lỗi - người dùng lại nhảy vào Debug hay End ứng dụng
    + Nhớ lại bài học: Vét cạn các trường hợp có thể xảy ra lỗi - Kiểm tra điều kiện trước khi thực hiện 1 lệnh (Ví dụ: trước khi Enabled cái Toolbar Button nào đó thì phải check xem nó có đủ điều kiện ko nhé - Anh bị lỗi đúng chỗ event Deactivation (ko rõ ở đâu vì thoát rồi) - ở cái dòng khong_nho_toolbar_button_nao.Enabled = True)
    Đó là lý do tại sao viết code "đẹp" nó lại quan trọng đến vậy :)
     
    #2
  3. SA_DQ

    SA_DQ Thành viên thân thiết

    Bài viết:
    433
    Đã được thích:
    38
    Nơi ở:
    HCM city
    Tiếc quá &ì không thể đọc được, không biết tại sao?

    Không biết tại sao mở ra lại toàn chữ Ả rập; không rõ nguyên nhân; đáng tiếc!
    Có ai biết cách khắc fục, xin chỉ giáo?!
     
    #3
  4. heroic

    heroic Thành viên sơ cấp

    Bài viết:
    56
    Đã được thích:
    0
    Nơi ở:
    vn
    Chương trình viết tuyệt thật, bạn chắc phải học nhiều rồi mới viết được như vậy chứ. Mình đang cần một file như vậy nhưng tính theo phương pháp FIFO thì tốt. Mình cũng đang học hỏi VBA bao giờ bạn có bản Final thì chia sẻ cho mọi người học hỏi góp ý nhé. Chúc bạn mau chóng hoàn thành tác phẩm đầu tay của mình.
     
    #4
  5. ForestC

    ForestC Thành viên sơ cấp

    Bài viết:
    377
    Đã được thích:
    1
    Nơi ở:
    E'rywhere
    Error Handle là cái dụng cụ như cái trap ấy hả anh Stony, sao anh cứ hay dùng thuật ngữ chuyên môn thế MaiKa biết đâu mà lần ???
     
    #5
  6. handung107

    handung107 Thành viên thân thiết

    Bài viết:
    576
    Đã được thích:
    13
    Nơi ở:
    VN
    Bạn phải có chương trình Winrar để giải nén, và không như Winzip, nếu bạn Double Click vào File nó sẽ ra chữ "Ả rập" liền, bạn phải mở Winrar, tìm đến File và giải nén, File của Adam tran thú vị lắm đấy, bạn hãy xem đi...
     
    #6
  7. workman

    workman Thành viên sơ cấp

    Bài viết:
    372
    Đã được thích:
    0
    Nơi ở:
    Ho Chi Minh
    Tôi không bình luận về giao diện vì nó quá đẹp rồi.

    Tôi mới có thời gian chạy thử thấy mấy cái function đầu thấy rất OK. Tuy nhiên, như bác SHM đã nói, hầu như code của bạn không có bẫy lỗi. Bạn hãy dùng thử cái thằng Code VB như SHM đã giới thiệu, nó tự add bẫy lỗi cho mình, như vậy chạy chắc ăn hơn, đỡ lo user chửi.

    Nói chung thuật toán như vậy là rất hay rồi. Tôi chẳng dám nói gì nhiều. Chỉ góp ý 1 chút thôi. Bạn thử gán giá trị bằng cách dùng lệnh formula=... xem sao, ví dụ activecell.formula=sheets("ABC").Cells(j,i), như thế đỡ phải chạy từ sheet này sang sheet kia. Nếu không, cái chương trình của bạn sẽ chạy tít mù từ sheet này copy 1 ô, xong lại chạy sang sheet kia paste value. Cái này tôi góp ý chân thành thôi, vì sau này khi làm các chương trình dài hơi hơn bạn sẽ thấy ý nghĩa ưu việt của việc gán giá trị trực tiếp thay vì copy/paste.

    Tôi đoán bạn dùng record macro để lấy lệnh paste special. Thực ra bạn không cần mấy cái lệnh lòng thòng như thế đâu. Selection.PasteSpecial Paste:=xlValues là đủ rồi.
     
    #7
  8. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Ha ha, đúng là có kinh nghiệm... suy ra từ mình! Cứ mỗi lệnh nào bí là record lại để lấy, hoặc mở mấy cái source download từ WKT ra xem... có cái nào xài được không. Tiếc là mấy cái source hầu như bị lock cả, chẳng biết làm sao để unlock được. :atom:
     
    #8
  9. ForestC

    ForestC Thành viên sơ cấp

    Bài viết:
    377
    Đã được thích:
    1
    Nơi ở:
    E'rywhere
    Ta cùng 1 mẹ* mà ra
    Giống nhau thao tác cũng là đương nhiên.
    (Note: * ý nói đến EFC nhà ta đấy mà)

    Ai mà chẳng làm như thế, nhiều chỗ bí không làm được thì thử xem máy nó làm thế nào ta làm lại như thế (đấy là đối với những việc dễ thôi). Và xem các source code đã có sẵn, và nữa sau hết những cái đó mà vẫn không làm được thì thói quen của tớ là Send messages hoặc fonecall 2 Mr. anh Tuân để hỏi. Lần nào cũng được việc. Thế mới thích.
     
    #9
  10. SieuMa

    SieuMa Thành viên sơ cấp

    Bài viết:
    13
    Đã được thích:
    0
    Nơi ở:
    HCM
    bug

    Mình bị lỗi :"Could not load some objects because they are not avaible on this machine"
    Mình down file Mscomct2.ocx rồi copy vào thư mục MS Office rồi, nhưng vẫn bị, vậy mình phải làm sao bây giơ?? :wall:
     
    #10
  11. adam_tran

    adam_tran Steel Partner

    Bài viết:
    1,373
    Đã được thích:
    32
    Nơi ở:
    Goooogle
    Bạn copy file trên vào thư mục C:\Windows\System nếu là WinMe, 9x, \System32 nếu là Win2K-XP.
    Sau đó, bạn phải khai báo vào Registry của Windows bằng cách:
    Từ dòng lệnh Run của Windows, bạn gõ vào:
    - Nếu là 9X, Me, gõ RegSvr Mscomct2.ocx
    - Nếu là 2K, XP, gõ RegSvr32 Mscomct2.ocx

    Chúc thành công!
     
    #11
  12. hoxulee

    hoxulee Thành viên sơ cấp

    Bài viết:
    16
    Đã được thích:
    0
    Nơi ở:
    Vietnam
    đây, giới thiệu bác Advanced Office 2000 Password Recovery ở www.elcomsoft.com, (hay ra tiệm mua, có ***** sẵn) unlock bất kỳ VBA source code (trừ rất ít trường hợp đặc biệt) chưa đầy 1s, tôi dùng thằng này để xử mấy cái download được từ www.erlandsendata.no, www.add-ins.com, www.asap-utilities.com, www.j-walk.com,... nhiều quá xem không nổi, giờ để đầy ở máy, xóa thì thương, vương thì tội, hì,
    giờ tôi quan tâm thằng AutoCAD VBA nhiều hơn
     
    #12

Chia sẻ trang này