Lập trình VBA nhanh hơn với thủ tục DBPrint (Cập nhật: 06/02/2019)

Liên hệ QC

HeSanbi

Nam Nhân✨Hiếu Lễ Nghĩa Trí Tín✨
Tham gia
24/2/13
Bài viết
2,382
Được thích
3,535
Giới tính
Nam
Chia sẻ cho mọi người một code lập trình VBA thuận tiện trong việc học cũng như viết code phát triển ứng dụng trong VBA

Code sẽ giúp các bạn có thể xem trước kết quả của một mảng nhanh hơn. Không cần phải chuyển sang Workbook mỗi lần chạy code mà có thể xem kết quả ngay trong cửa sổ lập trình VBA - Immediate.
Bản Cập nhật mới: 06/02/2019 22:30 :oops:
Thêm điều chỉnh khung VBE và cửa sổ Immediate khi kiểm thử
Nâng cấp thành Add-ins để hoạt động trên nhiều File và các phiên bản Excel chạy song song
Thêm một số hàm:

Alert - Thay cho MsgBox để tự động tắt sau vài giây
AlertH - Thay cho MsgBox để tự động tắt khi rê chuột vào (hỗ trợ tiếng Việt )
AlertUni - thông báo tiếng Việt theo hai kiểu gõ Telex và VNI
---------------------------------------------------------------------------------------
Tiện ích của hàm:
In nhanh chóng để xem thử kết quả Mảng, Dictionary, Collection,
Mảng trong Mảng, Multi Range.
Hiển thị Thứ tự hàng và cột khi ghi giả định một mảng như khi ghi vào trang tính để
xem trước kết quả trước khi đưa vào Trang tính
---------------------------------------------------------------------------------------
dbPrint [DataImport], [HasTitle] ,[punc] , [HasType] , [SeriSeat],[wMinCol ], [wMaxCol ],[pMain] , [pType],[MaxType],[RngStartRow],[RngStartCol],[AlignStr],[imLeft],[imTop],[imWidth],[imHeight],[Ti]

Sử dụng:
Cách sử dụng đơn giản nhất:
dbPrint Array(0, 1, 2, 3)
Cách sử dụng chuyên nghiệp hơn:

Để sử dụng từng đối số hãy nhập Tên của Đối số trong Hàm DbPrint cùng dấu ( := ) hoặc nhập đúng vị trí của đối số hoặc bỏ qua đối số bằng cách thêm hai dấu phẩy ( ,, ) :
dbPrint DataImport:=Array(1,2), HasTitle:=True ,punc:="", HasType:=False , SeriSeat:=7, wMinCol:=6, wMaxCol:=26,pMain , pType:=".",MaxType:=1,RngStartRow:=0,RngStartCol:=0,Ti:=5

1. [DataImport] - Đối tượng để ghi vào immediate ( hãy thử nhập vào bất kì đối tượng nào)
2. [HasTitle] - mảng có /không tiêu đề
3. [punc] - thêm ký tự đứng trước ("" thì tự động đánh thứ tự)
4. [HasType] - trả về / không trả về Type trong mảng 2D

5. [SeriSeat] - khoảng trống dành cho số dòng
6. [wMinCol ] - giới hạn độ rộng nhỏ nhất
7. [wMaxCol ] - giới hạn độ rộng của chuỗi dài nhất trong cột của mảng
8. [pMain] - Ký tự giản cách trong khoảng giới hạn độ rộng
9. [pType] - dấu phân cách trước Type
10. [MaxType ] - Độ rộng cho Type
11. [RngStartRow] - Vị trí dòng muốn in giả định (phụ thuộc RngStartCol
)
12. [RngStartCol] - Vị trí cột muốn in giả định (phụ thuộc RngStartRow
)
13. [AlignStr] - Căn chỉnh chuỗi in trong mảng 2 chiều

AlignStr = 1: Căn trái , 2 căn giữa, 3 căn phải
14. [imLeft] - Vị trí cửa sổ Immediate tính từ giới hạn trái màn hình
15. [imTop] - Vị trí cửa s Immediate tính từ giới hạn trên màn hình
16. [imWidth] - Độ rộng cửa s Immediate
17. [imHeight] - Chiều cao cửa s Immediate
18. [Ti ] - Sẽ làm sạch cửa sổ Immediate sau một thời gian (mặc định 5 giây) , Nếu đặt là 0 thì vô hiệu hóa việc làm sạch


Để ghi kết quả giả định Trang tính Excel trong cửa sổ Immediate
Hãy sử dụng hai tham số
: RngStartRow và RngStartCol
Ví dụ muốn ghi mảng Arr(1 to 10, 10 to 10) vào Range("C5") thì RngStartRow nhận 5 (Range("C5").Row), RngStartCol nhận 3 (Range("C5").Column)


Cần cho phép trung tâm tin cậy để bật khung Immediate tự động:
Trust access to the VBA project object model
  1. Mở Microsoft Excel.
  2. Mở một workbook.
  3. Chọn File , chọn Options. (Tùy chọn)
  4. Vào Trust Center. (Trung tâm tin cậy)
  5. Vào Click Trust Center Settings.... (Thiết đặt trung tâm tin cậy)
  6. Chọn Macro Settings. (Thiết đặt Macro)
  7. Đánh dấu Trust access to the VBA project object model (Cho phép truy cập mô hình đối tượng ...)
  8. Ấn OK.
Trong khi sử dụng nếu các bạn gặp lỗi hãy báo lỗi tại bài viết này, để kịp thời sửa chữa.

Bản hiện tại:
- Xem thử kết quả có đầu đề cột và số dòng
Capture.PNG

Trước khi tải file về sử dụng hãy Scan Virus tại: https://www.virustotal.com/vi/
hoặc khi bắt đầu mở File cho phép chỉnh sửa, không chọn cho phép Macro. Vào VBE đọc mã nguồn để tránh nguy hiểm cho Máy tính của các bạn.

Các bạn đặt Add-In vào XLSTART để dùng cho nhiều File và cho cả hai phiên bản Excel chạy song song

Liên hệ:

Mail: wazzateo@gmail.com
Facebook: fb.com/he.sanbi hoặc tìm kiếm he.sanbi
Link Donate - Link ủng hộ (Hoặc Facebook)

Capture.PNG
 

File đính kèm

  • DebugPrint.xlsb
    62.8 KB · Đọc: 27
  • AddInDBPrint.xlam
    71.3 KB · Đọc: 19
Lần chỉnh sửa cuối:
.
 
Lần chỉnh sửa cuối:
Upvote 0
"Không ngờ code lỗi dữ ta"
Function này là để mở của sổ Immediate đó bạn. Không lẻ giờ ngồi đây giúp bạn biết về Application.VBE
nếu làm biếng thì cất cái hàm đó đi cho rồi ... xong ta mở = tay đi cho nó nhanh mà ko bị lỗi
 
Upvote 0
.
 
Lần chỉnh sửa cuối:
Upvote 0
Bác Mạnh căng quá. Không phải lười biếng. mà là có khi các bạn không biết rộng về VBA có khi mò mãi không ra Immediate là gì. nên tôi để code đấy . để nó tự động mở lên. Thì bây giờ tôi đành thêm vào bẫy lỗi. Chứ sao đành
chạy tốt rồi đó .... mạnh khẳng định là bạn viết xong mà chưa thử chạy hay sao ấy
Sửa code bài 1 lại 1 tẹo ko ai đó copy chạy code người ta lại la lên giờ ....:p:D
Capture.PNG
 
Upvote 0
.
 
Lần chỉnh sửa cuối:
Upvote 0
---> kieu manh
Không biết Bác chạy code xong rồi thì sẽ nghĩ nó ứng dụng vào việc gì không?
nếu bạn nào có chí hướng mong muốn làm thầy giảng dạy VBA thì hay đó
Còn mạnh thì thấy nó khoa học đó vì mạnh có đọc nhiều tài liệu nó cũng mô tả mảng kiểu hình học như vậy...

có lẻ mạnh ko được học hành có trường lớp hay bài bản về VBA nói riêng và lập trình nói chung nên chưa hiểu hết được cái hay của nó

Code két cơ bản biết viết từ ngày đầu có Anh Quanghai1969 lâu lâu ghé chơi chỉ cho .... xong từ đó Mạnh mò học từ GPE và Internet cho nên kiến thức code két nó như một mớ lộn xộn ấy mà ... câu từ thuật ngữ code két nhiều khi phát ngôn ko ai giống mình là vậy -0-0-0-
 
Upvote 0
Bản Cập nhật mới: 25/01/2019 9:30 :oops:

1. Xem trước Dictionary, Collection, Mảng trong Mảng, Multi Range.
2. Hiển thị Thứ tự hàng và cột khi ghi giả định để xem trước kết quả trước khi đưa vào Trang tính



@Nguyễn Hoàng Oanh Thơ
 
Lần chỉnh sửa cuối:
Upvote 0
Bản Cập nhật mới: 06/02/2019 22:30 :oops:
Thêm điều chỉnh khung VBA và cửa sổ Immediate khi kiểm thử
Nâng cấp thành Add-ins để hoạt động trên nhiều File và các phiên bản Excel chạy song song
Thêm một số hàm:

Alert - Thay cho MsgBox để tự động tắt sau vài giây
AlertH - Thay cho MsgBox để tự động tắt khi rê chuột vào (thông báo tiếng Việt )
AlertUni - thông báo tiếng Việt theo hai kiểu gõ Telex và VNI


@Nguyễn Hoàng Oanh Thơ , @huuthang_bd , @vanaccex, @anhtu99
 
Lần chỉnh sửa cuối:
Upvote 0
Viết code dữ vậy rồi thì viết thêm 1 tẹo nữa đi ... thành viên mới ai chưa rành code họ chạy thấy lỗi lại la lên Giờ
nếu Ai check VBOM rồi thì chạy ok ... còn chưa check là lỗi code .... mà check cái Mục đó Mạnh rất Ít khi xài tới... mấy năm trước Mạnh vọc viết code check cái đó trên GPE nhiều lắm ... nhưng nay bỏ hết rồi làm biếng lắm ... check tay cho rồi :p
Chưa Check VBOM chạy code là lỗi vầy
Capture.PNG
Thử Check và Uncheck cái vòng khoanh tròn xong thoát file chạy lại code xem sao he
loi.PNG
 
Upvote 0
Cập nhật hôm nay!
Đối với AddInDBPrint.xlam sửa lỗi tự động bỏ qua duyệt Cho phép Macro
 
Upvote 0
Web KT
Back
Top Bottom