Cho hỏi cách gọi chương trình con (1 người xem)

Liên hệ QC

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

khohieuqua

Thành viên mới
Tham gia
14/3/08
Bài viết
15
Được thích
0
Xin mấy bạn, anh chị chỉ giúp mình muốn làm một chương trình con bằng thủ tục hoặc hàm sao đó từ chương trình khác mình gọi nó vào để thực hiện tiếp sao khong được. xin chỉ giúp cám ơn.

Và có cách nào làm cho thời gian hiển thị chậm lại không, chỉ mình với
 

File đính kèm

Lần chỉnh sửa cuối:
Một số chổ chưa đúng như sau:

Thứ nhất:
Tại dòng lệnh 5 dưới đây bạn gọi chương trình con & cung cấp cho nó 1 tham số;
Nhưng chương trình con mà bạn gọi nó cốc cần cái tham số đó & nó tuyên bố: "Ai quẳng rác cho tôi, tôi sẽ quăng rác lại" Thế thôi!


PHP:
Sub x_mu_n_chia_n_giai_thua()
 Dim i As Integer, n As Integer, tam As Double
 tam = 0
 x = [b1]:               n = [b2]
For i = 0 To n
5       tam = tam + x ^ i / gt(n) 'goi chuong trinh con gt o tren kg dc xin chi voi '
       'tai sao goi chuong trinh con kg dc'
        'xmu 0 = 1 '
       's = 1 + xmu1 +xmu2 ...+ xmu n '
Next
[b5] = tam:                MsgBox tam
End Sub
Muốn nó chạy 1 cách bình thường, chương trình con hiện thời bạn phải sửa lại thành 1 hàm hẵn hoi; Khi đó ai ới nó nó sẽ tính & cho số mà nó tính được;
Hàm đó có thể như vầy

PHP:
Function gt(n As Integer)
Dim j As Double, tamzz As Double ', n As Double'
tamzz = 1
' n = [b1]   '
For j = 1 To n
   tamzz = tamzz * j
Next
[b3] = tamzz:        gt = tamzz
End Function
Chú í, chúng ta phải vô hiệu hóa 1 biến đã khai báo; Hàm sẽ nhận vô biến này thông qua tham số mà macro chuyển cho

' = = = = = = = =
Dãn thời gian bằng cách chuối nhất đây, xin mời:

PHP:
Sub inngoisaotamgiac_roixoa()
Dim iI As Integer, Jj As Integer, nN As Integer
Dim Timer_ As Double

hH = 0:                     cC = 30
nN = [a1]

For iI = 1 To nN
   hH = hH + 1
   cC = cC - 1
For Jj = 1 To (2 * iI - 1)
   Cells(hH, cC + Jj) = "*"
   Timer_ = Timer
   Do
   
      If Timer - 0.1 > Timer_ Then Exit Do
   Loop
   Range(("B1:iv65536, a2:a65536")).Select
   Selection.ClearContents

Next Jj, iI
Range("A1").Select

End Sub





Chúc vui!:-=
 
Lần chỉnh sửa cuối:
Cám ơn bạn Chanhtq@ nhưng bạn có thể giải thích thêm giùm một chút chổ "chúng ta phải vô hiệu hóa 1 biến đã khai báo; Hàm sẽ nhận vô biến này thông qua tham số mà macro chuyển cho"

vậy " vô hiệu hóa" nó nghĩa là sao ? cám ơn
 
Cám ơn bạn Chanhtq@ nhưng bạn có thể giải thích thêm giùm một chút chổ "chúng ta phải vô hiệu hóa 1 biến đã khai báo; Hàm sẽ nhận vô biến này thông qua tham số mà macro chuyển cho"

vậy " vô hiệu hóa" nó nghĩa là sao ? cám ơn
(1) Ta qui định rằng macro hay hàm cần cung cấp 1 tham số;
Nhưng trong macro hay hàm đó ta lại khai báo biến, trùng tên với tham số chúng sẽ dừng lại & cự nự bạn liền.

(2) Còn để vô hiệu hóa có vài cách, mà cách đơn giản nhất là quýnh dấu nháy đơn lên đầu dòng lệnh ("'") để macro hay hàm không đếm xỉa đến nó nữa;
Sẵn nói luôn, Bạn có thể thử nhập 3 từ viết thường như sau 'rem' vô đầu dòng lệnh nào đó, sau đó cho con trỏ đi khỏi dòng lệnh đó;

Lúc ấy dòng lệnh sẽ biến màu & VBA sẽ sửa lại chữ ta vừa nhập thành 'Rem'
Điều ấy có nghĩa là những hành động của chúng ta được VBA lưu ý & chấp nhận.

(Hai cách trên cho phép ta nhớ lại những gì mà ta lần lượt tác động lên macro/hàm của chúng ta.)

. . . . .

Chúc vui nha!

Bổ sung: Nói bạn có dận cũng vẫn nói: Bạn tự học VBA thì nên các khai báo phải tường minh, đầy đủ. Lúc đó ta dễ kiểm soát chương trình;
Cả trong việc khai báo biến, khai báo biến chỉ 1 ký tự, theo mình dành cho những vị học hành trường lớp, có bài bản; họ có khả năng quán xuyến những biến đó; Còn chúng ta nên khai báo chí ít 2 ký tự, lợi dụng thằng VBA quản lý giúp mình thêm; Ví dụ ta khai báo 1 biến đếm như sau:

Dim jJ As Byte

Sau đó phía dưới ta cứ việc gỏ jj hay JJ, VBA sẽ sữa giúp ta; Lợi hại của việc này làm ta tránh được sai sót khi gỏ tên các biến do đang mất tập trung, cẩu thả hay vội vàng . . .
Nói nhỏ, điều này dễ gây thiện cảm với những người đi trước đối với mình, hầu qua đó, người ta sẽ bảo ban mình càng kỹ hơn.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Web KT

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

Back
Top Bottom