Tạo bảng bằng VBA

Liên hệ QC

duchuynh103

Thành viên thường trực
Tham gia
25/9/07
Bài viết
209
Được thích
146
Công việc mình có nhiều biểu mẫu báo cáo chi tiết, bảng dữ liệu khoảng hơn (1000 x 28) cell. Dùng công thức nhiều quá làm chậm tốc độ xử lý (máy cấu hình không được xịn mà!). Trong lúc mình lại không biết tí gì về VBA. Vậy nhờ các bạn giúp mình tạo một bảng báo cáo bằng VBA mẫu. Qua đó mình có thể học hỏi thêm và mầy mò thiết kế một vài biểu mẫu khác tương tự. Rất cảm ơn các bạn quan tâm chỉ giáo.
 

File đính kèm

Tôi thấy bên sheet1, sau khi bạn đã xử lý công thức ở cột A xong thì dùng AutoFilter với tùy chọn NonBlanks, copy sang sheet2 cũng rất nhanh
Giã sử rằng ta dùng VBA thì tôi cũng sẽ dựa trên cơ sở này! Nếu bạn muốn có thể tự record lấy 1 macro toàn bộ quá trình như tôi nói ở trên là đựoc chứ gì
 
Upvote 0
Quá cù bắp, nhưng viết cho bạn dễ hiểu thì khó quá!
Sheet3: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái vào 1 ô nào bất kỳ để code chạy.
Sheet4: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái nút chạy để gọi code chạy.

Bạn từ từ nghiên cứu cách quét ô trong công thức VBA rồi suy ra giá trị ô ứng với thời điểm đó. (Bạn bấm Alt + F11, rồi click chuột vào bên trái của code để thấy được 1 chấm nâu và tô nâu dòng code đó, rồi vào bảng tính chạy thử. Khi chạy thì code sẽ được tô vàng ở dòng đóng. Bạn đưa chuột lên các biến k,i,j và Cells để biết các giá trị tại thời điểm đó).
Khi quét như vậy, nếu bạn không muốn thấy cột nào thì chỉ việc chọn cột đó rồi ẩn nó đi là được.
Bạn xem file!.
Thân.
 

File đính kèm

Upvote 0
Quá cù bắp, nhưng viết cho bạn dễ hiểu thì khó quá!
Sheet3: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái vào 1 ô nào bất kỳ để code chạy.
Sheet4: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái nút chạy để gọi code chạy.

Bạn từ từ nghiên cứu cách quét ô trong công thức VBA rồi suy ra giá trị ô ứng với thời điểm đó. (Bạn bấm Alt + F11, rồi click chuột vào bên trái của code để thấy được 1 chấm nâu và tô nâu dòng code đó, rồi vào bảng tính chạy thử. Khi chạy thì code sẽ được tô vàng ở dòng đóng. Bạn đưa chuột lên các biến k,i,j và Cells để biết các giá trị tại thời điểm đó).
Khi quét như vậy, nếu bạn không muốn thấy cột nào thì chỉ việc chọn cột đó rồi ẩn nó đi là được.
Bạn xem file!.
Thân.
Cam ơn PiKachu và các bạn nhiều. Mình sẽ ngcứu dần. Hy vọng các bạn ủng hộ.
 
Upvote 0
Quá cù bắp, nhưng viết cho bạn dễ hiểu thì khó quá!
Sheet3: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái vào 1 ô nào bất kỳ để code chạy.
Sheet4: Khi bạn chọn chẳn-lẻ xong thì nhấn thêm 1 cái nút chạy để gọi code chạy.

Bạn từ từ nghiên cứu cách quét ô trong công thức VBA rồi suy ra giá trị ô ứng với thời điểm đó. (Bạn bấm Alt + F11, rồi click chuột vào bên trái của code để thấy được 1 chấm nâu và tô nâu dòng code đó, rồi vào bảng tính chạy thử. Khi chạy thì code sẽ được tô vàng ở dòng đóng. Bạn đưa chuột lên các biến k,i,j và Cells để biết các giá trị tại thời điểm đó).
Khi quét như vậy, nếu bạn không muốn thấy cột nào thì chỉ việc chọn cột đó rồi ẩn nó đi là được.
Bạn xem file!.
Thân.
Bạn mà dùng For để quét thì với dử liệu bao nhiêu đây không có vấn đề!
Như tác giã có nói :
bảng dữ liệu khoảng hơn (1000 x 28) cell. Dùng công thức nhiều quá làm chậm tốc độ xử lý (máy cấu hình không được xịn mà!)
Vì thế tôi nghĩ dùng For không phải là giãi pháp tốt về tốc độ...
Nếu là tôi thì tôi sẽ dùng AutoFilter trong code, tiếp theo là dùng SpecialCells(12) để định vị vùng dử liệu, cuối cùng copy sang sheet bên kia
 
Lần chỉnh sửa cuối:
Upvote 0
Tạo biểu

Mình làm như thế này không biết đúng ý bạn chưa!
 

File đính kèm

Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom