Hỏi về cách sử dụng Msgbox (1 người xem)

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

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

Raiso

Thành viên mới
Tham gia
28/7/08
Bài viết
8
Được thích
1
Các bậc tiền bối giúp mình với!
Mình đang có một sub default thực hiện tính toán như sau;

sub Default()
.....tính toán tính toán
msgbox (xxx, vbOKCancel)
.... tính toán tiếp
end sub

Vấn đề là sub này ẩn và chỉ tính cho 1 dòng trong excel. Mình có rất nhiều dòng cần tính và không muốn cứ click đi click lại macro này mãi, nên mình viết 1 sub khác call sub này để chạy, đại loại như bên dưới:

sub New()
i=1
with session
do while xxxxx
Default
{***}
i = i +1
Loop
End with
End sub

Vấn đề là lúc call sub default lên thì nó đưa ra lựa chọn OK hay cancel, mình phải click OK thì chương trình mới chạy tiếp. Mình muốn hỏi câu lệnh để tự động chọn OK cho msgbox luôn. Lưu ý là sub default bị ẩn đi, mình không thể view hay edit hay làm cho nó hiện lên được (đã bị mã khóa bởi user khác). Tất cả mình có thể làm là viết lệnh trong sub New của mình và tác động lên msgbox của sub Default.

Mình muốn hỏi có cách nào không ạ? Mong các bạn giúp đỡ mình với.
 
Vấn đề là lúc call sub default lên thì nó đưa ra lựa chọn OK hay cancel, mình phải click OK thì chương trình mới chạy tiếp. Mình muốn hỏi câu lệnh để tự động chọn OK cho msgbox luôn. Lưu ý là sub default bị ẩn đi, mình không thể view hay edit hay làm cho nó hiện lên được (đã bị mã khóa bởi user khác).

Nếu tự động thì, cần gì phải dùng Msgbox?

LVD
 
Upvote 0
Nếu tự động thì, cần gì phải dùng Msgbox?

LVD
Vì cái MsgBox này nằm trong 1 sub đã được Protect, không sửa được (chỉ có thể gọi cho nó chạy) ---> Và ở đây tác giả muốn khỏi cần bấm YES khi MsgBox xuất hiện
Đại khái thế này:
- Khi gọi sub này ra, sau quá trình tính toán nó sẽ xuất hiện 1 MsgBox
- Vậy liệu ta có cách nào viết 1 sub khác, gọi Sub kia ra và tự động bấm YES luôn ---> Giống như Sendkyes vậy đấy
 
Upvote 0
Lần chỉnh sửa cuối:
Upvote 0
Vì cái MsgBox này nằm trong 1 sub đã được Protect, không sửa được (chỉ có thể gọi cho nó chạy) ---> Và ở đây tác giả muốn khỏi cần bấm YES khi MsgBox xuất hiện
Đại khái thế này:
- Khi gọi sub này ra, sau quá trình tính toán nó sẽ xuất hiện 1 MsgBox
- Vậy liệu ta có cách nào viết 1 sub khác, gọi Sub kia ra và tự động bấm YES luôn ---> Giống như Sendkyes vậy đấy

Cái này không dùng msgbox được bạn ah. Chỉ có thể dùng status bar hoặc là Progress Bar thôi bạn ah.
 
Upvote 0
Mặc nhiên nút OK sẽ chọn đối với vbOKCancel. Bạn chỉ việc thêm dòng lệnh

trước lệnh call Default

Ý bạn như ví dụ sau đây phải không?
Theo cách nghĩ thông thường thì phài Call Default trước, sau đó mới Sendkeys ---> nhưng làm vậy nó cóc chạy ----> Đặt Sendkeys trước thì ngon lành
Hay ghê!... Cũng là 1 kinh nghiệm khi lập trình... Cảm ơn bạn!
Tôi nghĩ nó gần giống ví dụ này đây:
PHP:
Sub Default()
  [A1] = 1
  MsgBox "Tinh tiep chu?"
  [A2] = [A1] + 5
End Sub
PHP:
Sub Trunggian()
  Application.SendKeys ("{ENTER}")
  Call Default
End Sub
Nếu chạy trực tiếp sub Default thì có MsgBox ---> Nếu chạy sub Trunggian thì MsgBox được bỏ qua
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đã thử chạy sendkey trước rồi mới call default nhưng mà vẫn không chạy được. Có cách nào khác nữa không bạn nhỉ
 
Upvote 0
Vậy bạn gửi file lên xem thử đi.
 
Upvote 0
Mình có đoạn code sau:
Private Sub CommandButton2_Click()
Dim t As Integer
For t = textr3.Text To textr4.Text
Sheets(Array("A1", "A2", "A3")).Select
ActiveWindow.SelectedSheets.PrintOut
Sheets("A1").Select
Next
End Sub
Khi textr3, textr4 "rỗng" thì báo lỗi. Xin nhờ mọi người giúp mình ra một thông báo khi textr3, textr4 "rỗng" và giúp mình hoàn thiện đoạn code trên
 
Upvote 0
Mình có đoạn code sau:
Private Sub CommandButton2_Click()
Dim t As Integer
For t = textr3.Text To textr4.Text
Sheets(Array("A1", "A2", "A3")).Select
ActiveWindow.SelectedSheets.PrintOut
Sheets("A1").Select
Next
End Sub
Khi textr3, textr4 "rỗng" thì báo lỗi. Xin nhờ mọi người giúp mình ra một thông báo khi textr3, textr4 "rỗng" và giúp mình hoàn thiện đoạn code trên
Thì trước vòng for bạn kiểm tra điều kiện.
Mã:
If textr3.text="" or textr4.text="" then
Msgbox "ban chua nhap textr3hoac textr4"
Exit sub
End if
Còn hoàn thiện code thì phải có file.
 
Upvote 0
Web KT

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

Back
Top Bottom