Khai báo biến trong Hàm VBA (1 người xem)

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

hungpecc1

Thành viên gắn bó
Tham gia
24/8/12
Bài viết
1,709
Được thích
2,304
Giới tính
Nam
Chào diễn đàn GPE , em có một vướng mắc như sau :

Làm sao khai báo được số C, nếu có thì test = a+b+c
Nếu không có thì test = a+b

Như vậy hàm đã cho sẽ có dạng tést (a,b [c] ) giống như lệnh trong cel

Public Function test(a, b, c As Range) As Double


test = a + b + c

End Function

Móng các pác nhiệt tình giúp đỡ thanks ^^ !
 
Bạn dùng từ khoá Optional cho tham biến C thân iêu của bạn, như vầy:

PHP:
Function Test( Aa As Double, Bb As Double, Optional Cc As Double)
  Test  =  Aa + Bb + Cc
End FUnction
 
Thì như vầy:

PHP:
Function Test(ByVal a As Double, ByVal b As Double, Optional ByVal c As Double) As Double
      Test = a + b + c
End Function
 
Chào diễn đàn GPE , em có một vướng mắc như sau :

Làm sao khai báo được số C, nếu có thì test = a+b+c
Nếu không có thì test = a+b

Như vậy hàm đã cho sẽ có dạng tést (a,b [c] ) giống như lệnh trong cel

Public Function test(a, b, c As Range) As Double


test = a + b + c

End Function

Móng các pác nhiệt tình giúp đỡ thanks ^^ !

Đoán chắc là vầy:
Mã:
Public Function test(ByVal a As Double, ByVal b As Double, [COLOR=#ff0000]Optional ByVal c As Double = 0[/COLOR]) As Double

  test = a + b + c
End Function
 
Chào diễn đàn GPE , em có một vướng mắc như sau :

Làm sao khai báo được số C, nếu có thì test = a+b+c
Nếu không có thì test = a+b

Như vậy hàm đã cho sẽ có dạng tést (a,b [c] ) giống như lệnh trong cel

Public Function test(a, b, c As Range) As Double


test = a + b + c

End Function

Móng các pác nhiệt tình giúp đỡ thanks ^^ !

Lưu ý:

Các kiểu khai báo bị thiếu hoặc chưa đúng:

Nếu bạn khai báo cho các biến a, b, c kiểu Long (chẳng hạn) mà bạn khai:

Dim a, b, c As Long

là chưa chính xác, bởi chỉ có c mới thật sự là kiểu Long, còn a và b chỉ là kiểu Variant mà thôi.

Vì vậy chính xác hơn bạn phải khai là:

Dim a As Long, b As Long, c As Long

thì như vậy mới đầy đủ.

Với bài của bạn ngoài vấn đề khai báo chưa chính xác đã đành, mà hàm ở vòng ngoài () As Double mà bên trong lại c As Range thì có gì đó chưa rõ ràng lắm.
 

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

Back
Top Bottom