Phân biệt phương thức và hàm trong VBA (1 người xem)

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

Người dùng đang xem chủ đề này

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
Đôi khi tôi vẫn còn lúng túng trong phân biệt khái niệm giữa Phương thứcHàm trong VBA. Nhờ các bạn giúp tôi hiểu rõ hơn về vấn đề này

Trân trọng cảm ơn rất nhiều.
 
- Phương thức là một dạng chương trình gắn liền với đối tượng nhằm thực hiện một hay nhiều hành động. Phương thức không trả về giá trị như thuộc tính. Bạn không thể gán giá trị cho phương thức nhưng có thể truyền các giá trị(tham số). Các phương thức có thể coi là động từ. Ví dụ : với chiếc xe đạp thì hành động sơn là phương thức còn màu đỏ là thuộc tính...
- Hàm là các CÔNG THỨC ĐỊNH SẴN nhằm thực hiện các tính toán chuyên biệt.
 
Upvote 0
Nhân đây cho em hỏi tại sao Find trong VBA là không phải là hàm?
Vì nó cũng ra kết quả là những ô thoả mãn mà. Tuy nhiên, sách ghi nó là phương thức?
 
Upvote 0
Nhân đây cho em hỏi tại sao Find trong VBA là không phải là hàm?
Vì nó cũng ra kết quả là những ô thoả mãn mà. Tuy nhiên, sách ghi nó là phương thức?
Giải Thích cho bạn rõ nha
1 đối tượng có 2 thành phần
phương thức (method)
thuộc tính (attribute).

Thực tế, các phương thức của đối tượng là các hàm
và các thuộc tính của nó là các biến

mà trong câu hỏi của bạn vì hàm FIND nằm trong 1 đối tượng nào đó nên nó gọi là phương thức của đối tượng đó
 
Upvote 0
Nhân đây cho em hỏi tại sao Find trong VBA là không phải là hàm?
Vì nó cũng ra kết quả là những ô thoả mãn mà. Tuy nhiên, sách ghi nó là phương thức?
Ta đã biết 2 cách viết của Phương thức :
1. Object.Method - Trường hợp không có tham số
2. Object.Method(agurment1, agurment2...) - Trường hợp PT có truyền tham số
Find không phải là hàm vì nó gắn liền với đối tượng RANGE. Xem cấu trúc phương thức FIND
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
expression trả về 1 đối tượng là RANGE
Chúng ta có thể thấy được rõ cách gọi là hàm hay phương thức khi sử dụng hộp hội thoại Inputbox.
Nếu bạn viết là :
- sTring =InputBox(prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Khi đó Inputbox được gọi là hàm Inputbox NhƯNG nếu bạn viết là :
- sTring= Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
Khi đó Inputbox không gọi là hàm nữa mà được gọi là phương thức Inputbox vì nó gắn với đối tượng Application.
 
Upvote 0
Đôi khi tôi vẫn còn lúng túng trong phân biệt khái niệm giữa Phương thứcHàm trong VBA. Nhờ các bạn giúp tôi hiểu rõ hơn về vấn đề này

Trân trọng cảm ơn rất nhiều.

- Hàm trong VBA tương tự như hàm trong toán học, ví dụ : f(x)=2x+1, x là tham số bạn cần phải nhập, f(x) là giá trị của hàm.
- Dùng hàm khi bạn cần tìm 1 giá trị nào đó (tìm tổng của các số nhập vào, tính giai thừa của số nhập vào, ...)
- Phương thức chỉ là thực hiện 1 công việc (đổi màu cho 1 ô, xoá 1 dòng, ....)
 
Upvote 0
- Phương thức chỉ là thực hiện 1 công việc (đổi màu cho 1 ô, xoá 1 dòng, ....)
Không đúng là nha!
Find Method trả về kết quả là Range ---> Vậy cũng có thể xem nó như 1 Function rồi
Tuy nhiên nó lại không giống Function vì nó không thể hoạt động độc lập... Phải có Object đi trước nó
Object.Find(Tham số) as Range
Nó giống Sub có tham số truyền (vì có tham số) nhưng lại cho ra kết quả như 1 Function
Tổng kết lại:
- Cú pháp của Sub có tham số: Sub Tên Sub(tham số)
- Cú pháp của Function: Function Tên hàm (đối số) as kiểu dữ liệu
- Cú pháp của Method: Object.Tên phương thức (tham số) as kiểu dữ liệu
Trong 3 loại trên, 2 món đầu nguòi dùng có thể tạo được, còn món sau cùng (Method) chẳng biết tạo bằng cách nào
----------------
Gì cũng được, miễn đạt được mục đích cuối cùng là OK
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom