HeSanbi
Nam Nhân✨Hiếu Lễ Nghĩa Trí Tín✨
- Tham gia
- 24/2/13
- Bài viết
- 2,589
- Được thích
- 3,979
- Giới tính
- Nam
Hôm nay tôi chia sẻ các bạn một kiến thức tuy đơn giản nhưng có thể các bạn chưa nắm bắt được, đó là cách gọi một Hàm, Thủ Tục trong VBA, trong Trang tính Excel Ribbon, hoặc Phím tắt. Với hướng dẫn dưới đây các bạn sẽ hiểu rõ hơn về sự đa dạng cách gọi hàm và thủ tục giúp các bạn tận dụng tối đa VBA để viết mã cho dự án của bạn.
Gọi hàm và thủ tục trong VBA
Có 3 cách gọi hàm trong VBA:
(Nhược điểm của Evaluate là không thể thực thi trực tiếp mã thao tác và hành động nào đó, chỉ trả giá trị)
Gọi trong Trang tính
Có hai cách gọi hàm và thủ tục trong trang tính:
Gọi trên Thanh Công Cụ - Ribbon
Gọi trong Excel ở tiến trình khác
Mong rằng hướng dẫn trên đây có thể giúp các bạn biết cách gọi hàm và thủ tục ở bất kỳ đâu, và sẽ giúp ích cho các dự án tương lai của bạn. Chúc thành công!
Các bạn có thể đọc thêm các bài viết của tôi tại tag #sanbi udf
Gọi hàm và thủ tục trong VBA
Có 3 cách gọi hàm trong VBA:
1. Gọi trực tiếp:
JavaScript:
sub Call_HelloWorld()
Call HelloWorld(1,2)
End Sub
Function HelloWorld(thamSo1,thamSo2)
HelloWorld = "HelloWorld"
End Function
2. Gọi gián tiếp - Có 3 cách gọi gián tiếp:
- Gọi với phương thức Run: Trong phương thức Run này lại có hai cách gọi khác nhau
- Gọi nhận kết quả trả về:
JavaScript:
sub Run_HelloWorld1()
Dim i
i = Application.Run("HelloWorld",1,2)
Debug.Print "Run: " i
End Sub
- Gọi không có kết quả trả về:
JavaScript:
sub Run_HelloWorld1()
Call Application.Run("'HelloWorld 1,2'")
End Sub
- Gọi với phương thức OnTime:
JavaScript:
Sub OnTime_HelloWorld()
Call Application.OnTime(Now, "'HelloWorld 1,""2""'")
End Sub
- Gọi với phương thức Evaluate
JavaScript:
Sub Evaluate_HelloWorld()
Call Application.Evaluate("HelloWorld(1,2)")
End Sub
3. Gọi với phương thức CallByName:
CallByName hỗ trợ gọi hàm và thủ tục trong các Lớp, Đối tượng, ...
Ví dụ:
CallByName(UserForm1, "handle", vbGet)
CallByName(ThisWorkbook, "Workbook_SheetSelectionChange", vbGet, Sheet1, Cell1)
Cách gọi hàm từ bất kì Workbook nào đến mã trong Workbook gốc:
Call Application.Run("'" & book.Name & "'!HelloWorld",1,2)
Hoặc
Call Application.Run("'" & book.Name & "'!'HelloWorld 1,""2""'")
Gọi trong Trang tính
Có hai cách gọi hàm và thủ tục trong trang tính:
- Gõ hàm vào ô trang tính: =HelloWorld(1,2)
- Gán hàm vào một đối tượng: (Chuột phải vào đối tượng chọn Assign Macro... )
Nhập lệnh: 'HelloWorld 1,2'
Gọi trên Thanh Công Cụ - Ribbon
Đơn giản như trên chỉ cần nhập 'HelloWorld 1,""2""' vào thuộc tính onAction trong XML
Gọi trong Popup MenuContextĐơn giản chỉ cần gán control.OnAction = 'HelloWorld 1,""2""'
Gọi với Phím TắtĐơn giản chỉ cần gán Application.OnKey "^+k", 'HelloWorld 1,""2""'
Gọi trong Excel ở tiến trình khác
JavaScript:
Sub Evaluate_HelloWorld()
Call getObject(Book.Fullname).Parent.Run ("'" & Book.Fullname & "'!HelloWorld",1,"2")
End Sub
Mong rằng hướng dẫn trên đây có thể giúp các bạn biết cách gọi hàm và thủ tục ở bất kỳ đâu, và sẽ giúp ích cho các dự án tương lai của bạn. Chúc thành công!
Các bạn có thể đọc thêm các bài viết của tôi tại tag #sanbi udf
Lần chỉnh sửa cuối: