Hiển thị kết quả tìm kiếm từ 1 đến 8 trên tổng số: 8
  1. #1

    Hỏi về cách sử dụng Msgbox

    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.

  2. #2
    Tham gia ngày
    05 2006
    Nơi Cư Ngụ
    HCM
    Bài gởi
    1,735
    Cảm ơn
    1,823
    Được cảm ơn 4,308 lần trong 1,197 bài viết
    Trích Nguyên văn bởi Raiso View Post
    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

  3. #3
    Tham gia ngày
    06 2008
    Bài gởi
    24,047
    Cảm ơn
    13,794
    Được cảm ơn 42,846 lần trong 19,391 bài viết
    Trích Nguyên văn bởi levanduyet View Post
    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

  4. #4
    Tham gia ngày
    11 2008
    Nơi Cư Ngụ
    TPHCM + Bình Dương
    Bài gởi
    1,113
    Cảm ơn
    5,379
    Được cảm ơn 4,601 lần trong 1,209 bài viết
    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
    Application.SendKeys ("{ENTER}")
    trước lệnh call Default

    Ý bạn như ví dụ sau đây phải không?
    Sub A()
    MsgBox "Hello!", vbOKCancel
    End Sub
    Sub B()
    MsgBox "Run a", vbOKCancel
    Application.SendKeys ("{ENTER}")
    Call A
    MsgBox "Finish!", vbOKOnly
    End Sub
    thay đổi nội dung bởi: solomon2211, 19-03-09 lúc 11:50 AM

  5. Thành viên sau cảm ơn solomon2211 về bài viết này:


  6. #5
    Tham gia ngày
    06 2006
    Nơi Cư Ngụ
    TP Hội An
    Bài gởi
    2,128
    Cảm ơn
    3,733
    Được cảm ơn 5,401 lần trong 1,679 bài viết
    Trích Nguyên văn bởi ndu96081631 View Post
    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.
    Ai cũng một lần chết. Sống sao cho đến khi chết không phải hổ thẹn với chính mình.

  7. Có 2 thành viên cảm ơn yeudoi về bài viết này:


  8. #6
    Tham gia ngày
    06 2008
    Bài gởi
    24,047
    Cảm ơn
    13,794
    Được cảm ơn 42,846 lần trong 19,391 bài viết
    Trích Nguyên văn bởi solomon2211 View Post
    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 Code:
    Sub Default()
      [
    A1] = 1
      MsgBox 
    "Tinh tiep chu?"
      
    [A2] = [A1] + 5
    End Sub 
    PHP Code:
    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
    thay đổi nội dung bởi: ndu96081631, 19-03-09 lúc 11:56 AM

  9. Có 2 thành viên cảm ơn ndu96081631 về bài viết này:


  10. #7
    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ỉ

  11. Thành viên sau cảm ơn Raiso về bài viết này:


  12. #8
    Tham gia ngày
    11 2008
    Nơi Cư Ngụ
    TPHCM + Bình Dương
    Bài gởi
    1,113
    Cảm ơn
    5,379
    Được cảm ơn 4,601 lần trong 1,209 bài viết

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

Đề tài tương tự

  1. có cách nào xác định tọa độ trên Msgbox bằng Api
    Viết bởi thuyyeu99 trong chuyên mục Lập Trình với Excel
    Trả lời: 7
    Bài mới gởi: 20-08-10, 03:00 PM
  2. Có cách nào tô màu nền và màu chữ cho Msgbox không
    Viết bởi thuyyeu99 trong chuyên mục Lập Trình với Excel
    Trả lời: 23
    Bài mới gởi: 12-07-10, 05:16 PM
  3. Hỏi về MsgBox?
    Viết bởi emgaingayngo trong chuyên mục Lập Trình với Excel
    Trả lời: 2
    Bài mới gởi: 31-08-08, 04:59 PM
  4. Tin nhắn tự động trên Msgbox
    Viết bởi ThanhThao trong chuyên mục Những góp ý với diễn đàn
    Trả lời: 3
    Bài mới gởi: 22-07-06, 09:07 AM

Bookmarks

Bookmarks

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.
  •  

Mudim v0.8 Tắt VNI Telex Viqr Tổng hợp
Chính tả Bỏ dấu kiểu mới  [Bật/Tắt (F9)]