• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Tinh chỉnh code

Nơi trao đổi về VBA (Visual Basic for Application), lập trình cho ứng dụng Microsoft Office, AutoCAD...

Moderator: tungblt

debutant
Posts: 1
Joined: Fri 04/03/2011 4:12 pm

Tinh chỉnh code

Postby debutant » Fri 04/03/2011 9:29 pm

Kính chào các bác các anh các chị của caulacbovb ^_^

Thôi dài dòng thế chứ em vào đề tài ngay đây ạ. Cái file excel của em nó làm được 1 số việc em sẽ giải thích sau đây :

Em gửi cả nhà cái file excel có 3 sheets : Summarize, Temps và Data_for_test
Sheet summarize chứa CSDL. Công việc là dùng các dữ liệu của Cột G và cột H để kiểm tra. Cứ trùng material hay trùng description thì em đặt giống trước còn không thì cứ tăng dần. Rồi nối 6 giá trị cột B (lấy 3 ký tự đầu) D, E, F, G, H lại tạo thành 1 cái code.
Giờ cho các dòng mới vào sheet Temps (em để một số dòng ở data_for_test để các bác copy qua test) rồi em nhấn nút "check new code". Nó sẽ so sánh vào cái cơ sở ở summarize, nếu có dòng đó rồi thì điền code, chưa có thì tạo code copy ngược trở lại vào sheet summarize. Mục tiêu là tạo code cho các dòng mới.
Thực ra các nút bên chỗ Summarize phục vụ cho việc tạo code ban đầu không hệ trọng lắm. Chủ yếu là cái code chạy ở sheets Temps. Nếu để ít thì chạy nhưng nhiều thì hỏng, nó treo ngay, đặc biệt gặp nhiều dòng chưa có code trong Summarize. Lý do là cách chạy của đoạn code "check new code" của em nó chưa ổn, rồi cái vụ check lặp cũng chưa ổn. Em biết có cái CreateObject("Scripting.Dictionary")
mạnh mẽ lắm nhưng mà do trình còi nên chưa ứng đụng được.
Mong các bác tinh chỉnh hộ.
Chân thành cảm ơn.
Bác nào thấy dùng được cái đoạn code nào thì cứ lấy tự nhiên ạ.
Attachments
code_stockcode.rar
(70.78 KiB) Downloaded 266 times



User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Tinh chỉnh code

Postby truongphu » Mon 07/03/2011 10:54 am

debutant wrote:Chủ yếu là cái code chạy ở sheets Temps. Nếu để ít thì chạy nhưng nhiều thì hỏng, nó treo ngay, đặc biệt gặp nhiều dòng chưa có code trong Summarize. Lý do là cách chạy của đoạn code "check new code" của em nó chưa ổn, rồi cái vụ check lặp cũng chưa ổn. Em biết có cái CreateObject("Scripting.Dictionary") mạnh mẽ lắm nhưng mà do trình còi nên chưa ứng đụng được.

1- bạn gởi cả file excel thì rất tốt, tuy nhiên bạn nên nêu cụ thể đoạn code vì không phải ai cũng quen với các vấn đề riêng của bạn
2- Scripting.Dictionary có thế mạnh là chỉ cho nhập vào tự điển KHÔNG TRÙNG dữ liệu
bạn có thể tham khảo code mẫu như sau:
  1. Function UniqueRandomNum(Bottom As Long, Top As Long, Amount As Long)
  2.   'Application.Volatile '<--- Neu muon gia tri thay doi khi bam F9
  3.  On Error Resume Next
  4.   If Amount > Top - Bottom + 1 Then Amount = Top - Bottom + 1
  5.   With CreateObject("Scripting.Dictionary")
  6.     Do
  7.       .Add Int(Rnd() * (Top - Bottom + 1)) + Bottom, ""
  8.     Loop Until .Count = Amount
  9.     UniqueRandomNum = WorksheetFunction.Transpose(.Keys)
  10.   End With
  11. End Function
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Return to “Visual Basic for Application (VBA)”

Who is online

Users browsing this forum: No registered users and 1 guest