Tập sử dụng code VBA sẵn có trên diễn đàn

  • Thread starter Thread starter LikeIt
  • Ngày gửi Ngày gửi
Liên hệ QC

LikeIt

Thành viên tiêu biểu
Tham gia
16/6/06
Bài viết
415
Được thích
254
Nghề nghiệp
Others
Dear các Bác,

Hiện em đang tập tành về VBA (Chủ yếu là thử các code xem ứng dụng và hiệu quả của nó ntn) mà các bác đã post lên diễn đàn, vì em thấy có nhiều vd về code rất hay để có thẻ ứng dụng được trong công việc,nhưng vì em không biết VBA nên không biết vận dụng code đó để thử, mà chỉ biết mở excel và xem code (tức là ALT+F11) chứ không biết làm gì khác, nếu có thể mong các bác chỉ giùm em chút, là muốn thực hànhh trên code đó thì làm thế nào? bắt đầu từ mở VBA (ALT+F11) sau đó làm các bước gì tiếp theo. và cuối cùng là làm thế nào để active cái code đó và thấy kết quả của nó.Vì hôm nay em vào mục "trung tâm giải thích code" em thấy có nhiều topic các bác trao đổi rất có ích quản lý trong một số công việc như quản lý nhân sự, hàng hoá.... Mong các bác chỉ giáo giúp em. VD em thấy topic của Thunghi có một code ve tính ngày nghỉ để các bác thí nghiệm của em một file vd nhé (mong bác Thunghi lượng thứ vì đã sử dụng code của bác để hỏi mọi các anh chị em giải thíchh giúp:
Function songay(NgayCuoi As Date, NgayDau As Date, Thu As Integer) As Integer
Dim i As Integer
Dim ThoiGian As Integer
'Cu phap cach dung'=songay'("26/4/2007","2/1/2007",0)
'lay hieu so ngaycuoi-ngaydau, T2 = 2, T3 = 3 v.v.
'neu thu =0, tinh bao nhieu T7+CN, thu=8 tinh bao nhieu ngay le
'Tim bao nhieu ngay T6 giua 1/1/07 - 31/12/7
= songay("31/12/2007","1/1/2007",6)
If NgayCuoi < NgayDau Or Thu > 8 Then
MsgBox ("Ban nhap sai-nhap lai songay(ngaycuoi,ngaydau,thu), thu < 9")
Exit Function
End If
ThoiGian = DateDiff("d", NgayDau, NgayCuoi)
For i = ThoiGian To 0 Step -1
'1 la CN, 2 la thu 2 ....,7 la thu 7
'neu thu =0 tinh bao nhieu thu bay va cn
If Thu = 0 And (Weekday(NgayCuoi - i) = 1 Or Weekday(NgayCuoi - i) = 7) Then
songay = songay + 1
ElseIf Thu = 8 And WorksheetFunction.CountIf(Range("ngayle"), NgayCuoi - i) > 0 Then
songay = songay + 1
ElseIf Weekday(i, vbSunday) = Thu Then
songay = songay + 1
End If
Next i
End Function
 
Chào bạn,
Nếu bạn thực sự là người mới bắt đầu mời bạn tạm thời sang box học tập online và offline trong đó có một số hướng dẫn cho người mới bắt đầu trong lĩnh vực VBA. Đồng thời nên lấy một đoạn code đơn giản hay ít nhất thì trong đoạn code phức tạp này bạn hãy chỉ cho chúng tôi chổ nào bạn chưa hiểu rõ. Chúng tôi sẽ giúp bạn chứ nếu giải thích tràng giang nguyên cả đoạn code từ chữ a chữ b thì khó khăn cho bạn lẫn cho người giải thích.
Thân.
 
Upvote 0
OverAC đã viết:
Chào bạn,
Nếu bạn thực sự là người mới bắt đầu mời bạn tạm thời sang box học tập online và offline trong đó có một số hướng dẫn cho người mới bắt đầu trong lĩnh vực VBA. Đồng thời nên lấy một đoạn code đơn giản hay ít nhất thì trong đoạn code phức tạp này bạn hãy chỉ cho chúng tôi chổ nào bạn chưa hiểu rõ. Chúng tôi sẽ giúp bạn chứ nếu giải thích tràng giang nguyên cả đoạn code từ chữ a chữ b thì khó khăn cho bạn lẫn cho người giải thích.
Thân.

Cám ơn bác đã chỉ giáo, mình đúng là mới toe với VBA, nhưng mình chỉ muốn hỏi nếu có đoạn code đơn giản, thì làm thế nào để nó active thôi, chứ mình chưa hiểu về các ký hiệu trong từng code VBA thì làm sao mà dám hỏi các bác được.
 
Upvote 0
Có một vài loại code với các cách active như sau:
- Thủ tục (sub): Kích hoạt bằng cách:
+ Nhấn Alt + F8 để chọn tên sub trong list và nhấn run điều này chỉ thực hiện được khi sub đó không có đối số (argument)(xem giải thích đối số bên dưới)
+ nhấn F5 ngay trong đoạn code để chạy
+ dùng lệnh gọi từ các thủ tục khác
- Hàm (function): kích hoạt bằng cách:
+ gõ vào bảng tính với các đối số thích hợp
+ gọi từ các thủ tục hoặc hàm khác
- Thủ tục sự kiện: là các thủ tục gắn với các sự kiện ví dụ workbook-open, workbook-close....
+ Các thủ tục này tự động chạy khi sự kiện xảy ra.

Trường hợp đoạn code bạn đưa ra là hàm (function) để chạy được đoạn code này bạn vào trực tiếp file chứa đoạn code (đoạn code phải được chép vào 1 module của file). Ở ngoài Excel trên file này bạn cứ việc gõ =songay(...)
sau phím enter hàm này sẽ chạy.

Đối số: là các giá trị tham gia vào một hàm hoặc thủ tụ mà mình đưa vào. Ví dụ hàm đổi =sin(x) thì x là đối số của hàm sin. Trường hợp đoạn code trên có 3 đối số là ngaycuoi, ngaydau va thu (dòng thứ nhất của đoạn code)
HTH
 
Upvote 0
Cám ơn OverAC nhiều mình chỉ cần hỏi cái đó thôi để thử mà, hiện nay mình cũng đang ngâm cứ về macro và VBA có gì thắc mắc sẽ post lên diễn đàn hỏi các bác chỉ giáo thêm .tks/ NHT
 
Upvote 0
Web KT

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

Back
Top Bottom