Truyền tham số cho thủ tuc.

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

sealand

Thành viên gạo cội
Tham gia
16/5/08
Bài viết
4,883
Được thích
7,688
Giới tính
Nam
Nghề nghiệp
Kế Toán
Khi truyền tham số cho hàm thì người ta viết câu lệnh gọi hàm:
Ten_ham(DS tham số)
Trong thủ tục (Sub) thì truyền tham số như thế nào? Mình học theo cách truyền tham số của anh Duyệt trong thủ tục tạo ListView nhưng không được?
Mong anh em hướng dẫn giúp. Thanks.
 
Khi truyền tham số cho hàm thì người ta viết câu lệnh gọi hàm:
Ten_ham(DS tham số)
Trong thủ tục (Sub) thì truyền tham số như thế nào? Mình học theo cách truyền tham số của anh Duyệt trong thủ tục tạo ListView nhưng không được?
Mong anh em hướng dẫn giúp. Thanks.

Bạn không nói rõ cụ thể Sub làm việc với Object nào nên khó mà làm được. Tuy nhiên, nguyên tắc muốn truyền tham số cho sub thỉ khi khai báo SUb bạn phải khai báo luôn tham số, ví dụ:
PHP:
Sub Test(MyString as String)
a=Msgbox(MyString,,"Canh Bao")
End Sub

Khi gọi Sub và Truyền tham số như sau:

PHP:
Sub MySub()
Call Test("Xin Chao Moi Nguoi")
End Sub
 

File đính kèm

Upvote 0
Bạn đọc tạm vài bài của mình trong khi chờ đợi

http://giaiphapexcel.com/forum/showthread.php?t=12009#10
http://giaiphapexcel.com/forum/showthread.php?t=9005#4
http://giaiphapexcel.com/forum/showthread.php?t=11375#11
http://giaiphapexcel.com/forum/showthread.php?p=83402#post83402#6
http://giaiphapexcel.com/forum/showthread.php?p=82737#post82737#5
http://giaiphapexcel.com/forum/showthread.php?t=11074#10

Nếu bạn có nhiều thời gian, hãy vô chữ VBA trong phần chữ ký của mình; Tìm đến bài 2 & tải về tập "Chập chững đến với VBA". Trong đó có nói về việc truyền tham số cho macro

Chúc vui & thành công.
 
Upvote 0
Cám ơn Ca_dafi nhé.Qua bài của bạn tôi đã thấy lỗi rồi. Khi gọi thủ tục bình thường thì chỉ cần tên là được (Như trong VB6) nhưng khi truyền tham số câu lệnh phải đầy đủ có lệnh Call thì mới được.
Sub thu()
Dim trang As Worksheet
so = InputBox("Nhap 1 trong so trang:(1-2)")
If so = 1 Then
Set trang = Sheet1
Else
Set trang = Sheet2
End If
MsgBox trang.Name
Call diendl(trang)
End Sub
Private Sub diendl(sh As Worksheet)
sh.Activate
For i = 1 To 10
sh.Cells(i, 1) = i
Next
End Sub

Cám ơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Cám ơn Ca_dafi nhé.Qua bài của bạn tôi đã thấy lỗi rồi. Khi gọi thủ tục bình thường thì chỉ cần tên là được (Như trong VB6) nhưng khi truyền tham số câu lệnh phải đầy đủ có lệnh Call thì mới được.
Muốn truyền tham số cho Sub khác có 2 cách viết:
1. Call TenSub(tham số 1, tham số 2, ...) hoặc:
2. TênSub tham số 1, tham số 2, ...
(Cách 2 không dùng Call và không mở, đóng ngoặc)
Ví dụ: Sub AAA truyền 2 tham số cho Sub BBB
Cách 1:
Mã:
Sub AAA()
thamso1 = "Xin chao "
thamso2 = "Cac ban !"
Call BBB(thamso1, thamso2)
End Sub
Cách 2:
Mã:
Sub AAA()
thamso1 = "Xin chao "
thamso2 = "Cac ban !"
BBB thamso1, thamso2
End Sub
Mã:
Sub BBB(thamso1, thamso2)
MsgBox thamso1 & thamso2
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom