giúp mình liên kết các sub với .

Liên hệ QC

tuikhongten

Thành viên hoạt động
Tham gia
1/8/09
Bài viết
124
Được thích
11
mình muốn liên kết vòng lặp từ sub lỗi sang sub thông báo . các bạn chỉ giúp mình với nhé . xin cảm ơn .

Sub loi()

For i = 1 To 8

Call thongbao

Next i

End Sub
------------------------------------------------------------------
Sub thongbao()

Dim thongbao As String

thongbao = "có i thông báo"

MsgBox thongbao

End Sub
 

File đính kèm

  • vba test.xlsm
    14.7 KB · Đọc: 2
PHP:
Sub loi()
For i = 1 To 8
Call thongbao(i)
Next i

End Sub
------------------------------------------------------------------
Private Sub thongbao(byval thang_thu_i as String)
Dim thongbao As String

thongbao = "có " & thang_thu_i  & " thông báo"

MsgBox thongbao

End Sub
 
Upvote 0
mình muốn liên kết vòng lặp từ sub lỗi sang sub thông báo . các bạn chỉ giúp mình với nhé . xin cảm ơn .

Sub loi()

For i = 1 To 8

Call thongbao

Next i

End Sub
------------------------------------------------------------------
Sub thongbao()

Dim thongbao As String

thongbao = "có i thông báo"

MsgBox thongbao

End Sub
chưa hiểu ý bạn
Bài đã được tự động gộp:

PHP:
Sub loi()
For i = 1 To 8
Call thongbao(i)
Next i

End Sub
------------------------------------------------------------------
Private Sub thongbao(byval thang_thu_i as String)
Dim thongbao As String

thongbao = "có " & thang_thu_i  & " thông báo"

MsgBox thongbao

End Sub
ah thì ra ý bạn là vậy... hic
 
Upvote 0
PHP:
Sub loi()
For i = 1 To 8
Call thongbao(i)
Next i

End Sub
------------------------------------------------------------------
Private Sub thongbao(byval thang_thu_i as String)
Dim thongbao As String

thongbao = "có " & thang_thu_i  & " thông báo"

MsgBox thongbao

End Sub
cảm ơn bạn nhé . :))
 
Upvote 0
PHP:
------------------------------------------------------------------
Private Sub thongbao(byval thang_thu_i as String)
Dim thongbao As String

thongbao = "có " & thang_thu_i  & " thông báo"

MsgBox thongbao

End Sub
Private Sub thongbao(byval thang_thu_i)
If IsNumeric(thang_thu_i) Then
msgbox "có " & thang_thu_i & " thông báo"
Else
MsgBox "co cai gi do khong hieu de thong bao"
End Sub
 
Upvote 0
...

rờm rà . Xem đây

Sub loi()
For i = 1 To 8
Range("a1").Value = i
thongbao
Next i
End Sub

Sub thongbao()
MsgBox ("Co " & Range("a1").Value & " Thong bao")
End Sub
Đơn giản nhưng mà sai.
Đã được mách ròi mà vẫn không thấy nổi sai ở đâu thì về học lại VBA đi.
 
Upvote 0
Sai từ căn bản. Nhìn thì biết liền chứ không cần phải tét tiếc gì hết.
"Ở đây Test Kỷ lắm nha": kỹ đến mấy, thiếu căn bản thì vẫn không biết cách tét.

Từ khoá tra cứu cho bạn nào thắc mắc: integration test, và/hoặc regression test.
Điều kiện IF/Else ở bài #5 là để cho nó vượt qua boundary test.
 
Upvote 0
Lười giải thích quá. Không có hứng chỉ điểm cho người không hiếu học.
Bạn nào biết thì thử giải thích, hoặc cần biết thì hỏi. May ra tôi có hứng.
 
Upvote 0
Private Sub thongbao(byval thang_thu_i)
If IsNumeric(thang_thu_i) Then
msgbox "có " & thang_thu_i & " thông báo"
Else
MsgBox "co cai gi do khong hieu de thong bao"
End Sub
Em phán đoán cái ví dụ của chủ thớt chỉ là ví dụ mà thôi. Thực tế sẽ khác.
Khi chỉnh bài đó em đã cân nhắc như bài của anh, và suy luận chủ thớt chỉ cần mẫu code thông báo theo biến số i nên truyền luôn vào chuỗi thông báo.
 
Upvote 0
Em phán đoán cái ví dụ của chủ thớt chỉ là ví dụ mà thôi. Thực tế sẽ khác.
Khi chỉnh bài đó em đã cân nhắc như bài của anh, và suy luận chủ thớt chỉ cần mẫu code thông báo theo biến số i nên truyền luôn vào chuỗi thông báo.
Chỉ là chuyện thớt chữa cháy thôi. Không quan trọng lắm.
Bạn có muốn thử giải thích chỗ sai cho cái đầu óc thế kỷ 22 không?

(Kể từ lúc có kẻ lên mặt đạo đức mà xử dụng chiêu "kẻ thù của kẻ thù là bạn" thì tôi đâm lười. Chắc phải vài ngày mới tĩnh tâm lại)
 
Upvote 0
Chỉ là chuyện thớt chữa cháy thôi. Không quan trọng lắm.
Bạn có muốn thử giải thích chỗ sai cho cái đầu óc thế kỷ 22 không?

(Kể từ lúc có kẻ lên mặt đạo đức mà xử dụng chiêu "kẻ thù của kẻ thù là bạn" thì tôi đâm lười. Chắc phải vài ngày mới tĩnh tâm lại)
Đầu tiên em cần rõ ràng rằng: không đếm xỉa gì tới đầu óc 100 năm kia cả.
Còn về phương án ghi xuống cell rồi đọc lại nó thì chính xác là rườm rà, tự mang dây buộc cổ:
- mất công ghi, đọc
- không rõ ràng cell đó ảnh hưởng kéo theo như nào
- không xác định được sự kiện (change) kéo theo như nào
Ghi x xuống A1, chưa chắc lúc lấy dữ liệu lại từ A1 vẫn là x.
 
Upvote 0
...Còn về phương án ghi xuống cell rồi đọc lại nó thì chính xác là rườm rà, tự mang dây buộc cổ:
...
Bởi vậy code chạy 5 năm chưa thấy bị gì thì chắc do Công ty ấy có quy trình:
ô A1 chỉ dùng vào việc tính toán tạm bợ, không được chứa dữ liệu, và:
sheet nào có chứa hàm volatile (offset, indirect, rand) thì không được dùng code ấy.


Chỉ có mỗi cái xảo thuật ấu trĩ lười khai báo biến toàn cục (hoặc biến mô đun) mà rước vào mình một mớ rắc rối.
 
Upvote 0
Làm vầy cho đơn giản nè ông kẹ.

Mã:
Sub loi()
For i = 1 To 8
Range("a1").Value = i
thongbao
Next i
End Sub

Sub thongbao()
MsgBox ("Co " & Range("a1").Value & " Thong bao")
End Sub
Bài đã được tự động gộp:


rờm rà . Xem đây

Sub loi()
For i = 1 To 8
Range("a1").Value = i
thongbao
Next i
End Sub

Sub thongbao()
MsgBox ("Co " & Range("a1").Value & " Thong bao")

End Sub
Úi xùi, tưởng đi trước thời đại như thế naòo.

Nếu sheet đó của tôi khóa không muốn cho thao tác thì phải mở khóa ra rồi đóng vào?

Tôi đứng sheet xyz mà muốn chạy code thì phải trở về đúng vị trí sheet cần chạy code thì mới chạy được phải không? Vì ngoài sheet chạy được code này thì các sheet khác ô A1 cũng đã có dữ liệu.

Làm như thế này tốc độ giảm đi hay tăng lên so với việc thông qua một biến?

Tóm lại... mà thôi... nản !!!
 
Upvote 0
Web KT

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

Back
Top Bottom