file VBA có máy hoạt động được, có máy không hoạt động được

Liên hệ QC

vietcong1980

Thành viên chính thức
Tham gia
24/4/09
Bài viết
75
Được thích
11
Mình lấy 1 file ở máy công ty về nhà đề làm 1 file VBA. Khi làm xong rồi(VBA chạy rất tốt) mình mang đến công ty để chạy tiếp nhưng không thể chạy được, toàn có lỗi(lỗi 50290) báo là phương thức ontime cho opject application không hợp lệ, nhưng nếu mình mở 1 file excel nào đó bất kỳ thì file có VBA lại chạy được bình thường. Khi đem file này sang máy khác vẫn thấy VBA chạy được bình thường(không cần mở các file excel khác). Như vậy có thể do máy mình thiếu 1 thứ gì đó nên VBA không hoạt động được phải không? Các pro nào có thể giải thích giùm mình với!
 

File đính kèm

  • X1-T9.rar
    399.8 KB · Đọc: 40
Lần chỉnh sửa cuối:
do Excel của bạn chưa cài full option rồi ( máy báo lỗi ). chứ cái này bình thường mà.
 
Upvote 0
Mình lấy 1 file ở máy công ty về nhà đề làm 1 file VBA. Khi làm xong rồi(VBA chạy rất tốt) mình mang đến công ty để chạy tiếp nhưng không thể chạy được, toàn có lỗi(lỗi 50290) báo là phương thức ontime cho opject application không hợp lệ, nhưng nếu mình mở 1 file excel nào đó bất kỳ thì file có VBA lại chạy được bình thường. Khi đem file này sang máy khác vẫn thấy VBA chạy được bình thường(không cần mở các file excel khác). Như vậy có thể do máy mình thiếu 1 thứ gì đó nên VBA không hoạt động được phải không? Các pro nào có thể giải thích giùm mình với!

File của bạn bị nhiễm macro virus, có thêm 1 sheet ẩn là XL4Test5, và một số name rác, name ẩn.
 
Upvote 0
Định xóa name rác cho bạn, nhưng file bạn bị protect sheet nên đành để đó thôi. Lưu ý, với dạng name rác do virus tạo ra thì Excel 2003 chạy thì không sao hoặc rất ít "cự nự" gì, nhưng nhảy qua 2007 trở về sau thì nó bắt xác định lại một số tên của Name cho nên ta muốn mở sheet phải gõ tên tùm lum mới mở file được.


========================================================

Đã giúp thì giúp cho trót luôn. Bạn tự đặt lại protect sheet nhé!
 

File đính kèm

  • X1-T9.rar
    171.3 KB · Đọc: 28
Lần chỉnh sửa cuối:
Upvote 0
File của bạn bị nhiễm macro virus, có thêm 1 sheet ẩn là XL4Test5, và một số name rác, name ẩn.
Nếu file này như bạn nói thì thì tại sao trên các máy khác vẫn chạy được? Mk của file là 1234. Bạn giúp mình xóa virut và name ẩn để mình thử xem có được không nhé!
 
Upvote 0
Nếu file này như bạn nói thì thì tại sao trên các máy khác vẫn chạy được? Mk của file là 1234. Bạn giúp mình xóa virut và name ẩn để mình thử xem có được không nhé!

Tôi đã trả lời và post file bạn ở bài 4 rồi đấy! Kiểm tra nhé!

À, nói thêm là cái file này tôi gửi bạn thử mở lại ở máy nào bị lỗi có còn lỗi nữa không, sau đó bạn tự xử lý trên máy của bạn mới được, chứ tôi biết file này chỉ là 1 phần của chương trình.

Cách xử lý:

1) Alt+F11 để mở VBA, thấy ngay sheet XL4Test5 bạn chọn trong Properties và cho Visible để nó hiện lên (-1) và trở lại sheet đó rồi xóa luôn sheet đó.

2) Cho chạy code hiện tất cả name lên, sau đó lọc những name lỗi, name lạ (ngoại trừ name mình tạo ra) thì xóa hết. Ở Excel 2007 trở về sau có các chức năng lọc name và có thể xóa rất nhiều name một lúc.

Lúc này file của bạn sẽ nhẹ hơn, chạy sẽ nhanh hơn đấy.
 
Lần chỉnh sửa cuối:
Upvote 0
VBA vẫn không chạy được bạn ơi! Bạn xem lại nguyên nhân giúp mình!(Mình đã gỡ bỏ mk, và đưa file lên lại rồi)

Tiếp tục xem lại bài 6 nhé! Vừa bổ sung.


=============================

Với Excel 2007 bạn có cài lại Setting Macro chưa? Nếu chưa thì làm sao nó chạy đây?

Nói thêm là, cấu trúc này:

Application.OnTime Now + TimeValue("00:00:03"), "killTheForm"

Nó không sai và không bị lỗi kể cả chạy trên 2003 hay 2007, vì thế lỗi mà bạn nói chỉ có thể do phía các name rác, virus từ sheet ẩn gây ra mà thôi.

Application.OnTime Method
Schedules a procedure to be run at a specified time in the future (either at a specific time of day or after a specific amount of time has passed).
Syntax

expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)

expression A variable that represents an Application object.

Parameters

Name Required/Optional Data Type Description
EarliestTime Required Variant The time when you want this procedure to be run.
Procedure Required String The name of the procedure to be run.
LatestTime Optional Variant The latest time at which the procedure can be run. For example, if LatestTime is set to EarliestTime + 30 and Microsoft Excel is not in Ready, Copy, Cut, or Find mode at EarliestTime because another procedure is running, Microsoft Excel will wait 30 seconds for the first procedure to complete. If Microsoft Excel is not in Ready mode within 30 seconds, the procedure won’t be run. If this argument is omitted, Microsoft Excel will wait until the procedure can be run.
Schedule Optional Variant True to schedule a new OnTime procedure. False to clear a previously set procedure. The default value is True.

Remarks


Use Now + TimeValue(time) to schedule something to be run when a specific amount of time (counting from now) has elapsed. Use TimeValue(time) to schedule something to be run a specific time.


Example


This example runs my_Procedure 15 seconds from now.

Visual Basic for Applications
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"

This example runs my_Procedure at 5 P.M.

Visual Basic for Applications
Application.OnTime TimeValue("17:00:00"), "my_Procedure"

This example cancels the OnTime setting from the previous example.

Visual Basic for Applications
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
 
Lần chỉnh sửa cuối:
Upvote 0
Mình đã mở VBA ra nhưng không thấy sheet ẩn nào có tên như vậy,trong sheet14(Mucluc) mình thấy ở Visible là -1 rồi. Mình đang dùng excel 2003 mà! và mình cũng chạy file của bạn trên máy bị lỗi ở cơ quan(mình đang ở cơ quan),kết quả nó vẫn bị lỗi như vậy. Chắc máy tính phải thiếu cái gì đó nên nó không chạy, lạ thật đấy!
 
Upvote 0
Mình đã mở VBA ra nhưng không thấy sheet ẩn nào có tên như vậy,trong sheet14(Mucluc) mình thấy ở Visible là -1 rồi. Mình đang dùng excel 2003 mà! và mình cũng chạy file của bạn trên máy bị lỗi ở cơ quan(mình đang ở cơ quan),kết quả nó vẫn bị lỗi như vậy. Chắc máy tính phải thiếu cái gì đó nên nó không chạy, lạ thật đấy!

Máy bạn hoặc file bạn bị nhiễm Virus rồi, bạn mở thử bằng cách: trên Menu, chọn thẻ Format > Sheet > UnHide để xem có sheet ẩn hay không?

Đồng thời, file tôi post lên, bạn có mở được không? Thoát hết các file Excel đang mở rồi mới mở file mình nhé!
 
Upvote 0
Do bộ Office cài chưa đầy đủ nên không chạy được File, cài lại và chọn tất cả thì OK.
 
Upvote 0
Máy bạn hoặc file bạn bị nhiễm Virus rồi, bạn mở thử bằng cách: trên Menu, chọn thẻ Format > Sheet > UnHide để xem có sheet ẩn hay không?

Đồng thời, file tôi post lên, bạn có mở được không? Thoát hết các file Excel đang mở rồi mới mở file mình nhé!
File mình không có sheet ẩn bạn ạ! Mình mở được file nhưng VBA chạy báo lỗi. Nếu nói là do file của mình do sheet ẩn, name rác... thì tại sao các máy khác vẫn chạy được?

Do bộ Office cài chưa đầy đủ nên không chạy được File, cài lại và chọn tất cả thì OK.
Vậy tại sao các file có VBA khác vẫn chạy được bạn nhỉ? Chỉ có VBA của file này mới không chạy được thôi.
 
Upvote 0
File mình không có sheet ẩn bạn ạ! Mình mở được file nhưng VBA chạy báo lỗi. Nếu nói là do file của mình do sheet ẩn, name rác... thì tại sao các máy khác vẫn chạy được?

Bạn đừng xem trên cái máy bị lỗi của bạn. Hãy mở file của bạn trên một máy khác sẽ thấy! Trường hợp virus này mình gặp hoài!

Bạn thử tải về và mở cái file tôi đã gởi ở bài 4 xem có còn bị nữa không? http://www.giaiphapexcel.com/forum/...-máy-không-hoạt-động-được&p=440794#post440794
 

File đính kèm

  • Picture1.jpg
    Picture1.jpg
    47.6 KB · Đọc: 37
Lần chỉnh sửa cuối:
Upvote 0
Vừa nãy mình lấy file của bạn nên không có sheet ẩn(vì bạn đã xóa rồi). File của bạn vẫn không chạy được VBA, mình đã thử xóa sheet ẩn file VBA của mình nhưng cũng vậy.
 
Lần chỉnh sửa cuối:
Upvote 0
Upvote 0
Web KT
Back
Top Bottom