Code tự động mở file Excel theo giờ định sẵn (1 người xem)

Liên hệ QC

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

toandiennuoc123

Thành viên thường trực
Tham gia
7/3/12
Bài viết
239
Được thích
9
Chào các bạn, tôi muốn xin các bạn 1 code mở file Excel theo giờ "17h30'00'' ". Xin cám ơn các bạn. ( Trang Web này thay đổi giao diện tôi không search được....)
 
Bạn làm như sau:

Chạy Sub StartTimer, kết thúc thì EndTimer
Link Workbook được gán vào biến wLink
Mã:
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long) As Long

Public TimerID As Long, TimerSeconds As Single, tim As Boolean
Dim Counter As Long
Dim wLink As String

'~~> Start Timer
Sub StartTimer()
    '~~ Set the timer for 1 second
    TimerSeconds = 1
    TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub

'~~> End Timer
Sub EndTimer()
    On Error Resume Next
    KillTimer 0&, TimerID
End Sub

Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
    '~~> Open Workbook ontime
    wLink = "D:\GPE.xlsx"
    If Time = TimeSerial(17, 30, 0) Then Application.Workbooks.Open (wLink)
   
End Sub
 
Upvote 0
Bài này nếu làm biếng thì tui bày cho thử chơi vầy ha
1/ nhét file Excel vào 1 Folder cố dịnh nào đó VD: D:\yty\yy\*.xlsb
2/ Viết một file *.exe
3/ nhét vào đó 1 mớ code trong đó có code ghi các tham số của nó vào Registry ...khởi động file *.exe khi Windows chạy
khóa này nha: "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\
4/ Trong Files *.exe ý có code hẹn giờ ....VD: đến giờ xx thì nó tự động mở file Excel lên chạy ...
5/ nếu làm được mấy cái trên thì khỏi mất công mở file Excel lên để đó chơi xong đến giờ xx thì nó mới mở tiếp file Excel kia
6/ mấy năm nay tui ngồi mọc dễ với cái máy tính nên bị bệnh cột sống vì vậy cũng làm biếng làm ...nên bày cho bạn vậy ...tham khảo thêm nha
 
Upvote 0
Thực ra nếu sử dụng Task Schedule của Window cũng có thể giải quyết được việc mở file này, chắc chủ topic muốn trải nghiệm excel thôi mà.
 
Upvote 0
Thực ra nếu sử dụng Task Schedule của Window cũng có thể giải quyết được việc mở file này, chắc chủ topic muốn trải nghiệm excel thôi mà.

Thường thì mấy cái ý tưởng này là khởi đầu của ba cái vi rút. Người viết code cố tình bỏ vào file để đúng hạn (hoặc giờ bất kỳ nào đó) thì nó mở ra: hoặc phá phách dữ liệu, hoặc chuyển dữ liệu về mình. Tụi "tặng phần mềm miễn phí" vẫn chơi hoài.

Bạn nào vọc vào trò này phải cẩn thận. Nếu nhúng nó vào file của công ty thì ngồi tù như chơi.
 
Upvote 0
Thực ra nếu sử dụng Task Schedule của Window cũng có thể giải quyết được việc mở file này, chắc chủ topic muốn trải nghiệm excel thôi mà.
Tôi cũng thử Task Schedule và thấy nó chỉ chạy file.exe thôi, còn file.xlmb thì nó không chạy....
Thường thì mấy cái ý tưởng này là khởi đầu của ba cái vi rút. Người viết code cố tình bỏ vào file để đúng hạn (hoặc giờ bất kỳ nào đó) thì nó mở ra: hoặc phá phách dữ liệu, hoặc chuyển dữ liệu về mình. Tụi "tặng phần mềm miễn phí" vẫn chơi hoài.
Thực ra thì ý tưởng của tôi là:
1) Máy tính đến giờ đặt sẵn (trong BIOS)tự bật
2) khởi động xong thì bật file Excel.xlmb (hẹn giờ trong Task Schedule)
3) sau khi mở được file.xlmb thì nó tự động chạy code để copy 1 trang web
4) sau đó thì chạy nốt các code trong file đó
5) lưu và đóng file
6) Shutdown (Task Schedule)
Mới đến giai đoạn 2 thì có vấn đề.... mong các bạn giúp đỡ!
 
Upvote 0
Ý tưởng của bạn như thế nào là chuyện của bạn.
Đây là diễn đàn trao đổi. Tôi chỉ nhắc nhở các thành viên khác, trước khi mượn code này về thì phải suy nghĩ:
- Công việc "đến giờ thì mở ra" là nhiệm vụ của Task Scheduler
- Code điều khiển phần mềm được chứa trong Powershell (*)
- Cực chẳng đã thì viết bằng script (VBScript, JavaScript)

(*) Powershell có thể làm hết các công việc bạn kể ở trên.
 
Upvote 0
Tôi cũng thử Task Schedule và thấy nó chỉ chạy file.exe thôi, còn file.xlmb thì nó không chạy....

Thực ra thì ý tưởng của tôi là:
1) Máy tính đến giờ đặt sẵn (trong BIOS)tự bật
2) khởi động xong thì bật file Excel.xlmb (hẹn giờ trong Task Schedule)
3) sau khi mở được file.xlmb thì nó tự động chạy code để copy 1 trang web
4) sau đó thì chạy nốt các code trong file đó
5) lưu và đóng file
6) Shutdown (Task Schedule)
Mới đến giai đoạn 2 thì có vấn đề.... mong các bạn giúp đỡ!
Máy cơ quan khóa task nên không test được cho bạn, nhưng bạn đã có hướng vậy bạn hoàn toàn có thể tìm kiếm trên internet, link dưới đây là 1 ví dụ:

 
Upvote 0
Bạn làm như sau:

Chạy Sub StartTimer, kết thúc thì EndTimer
Link Workbook được gán vào biến wLink
Mã:
Public Declare Function SetTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long

Public Declare Function KillTimer Lib "user32" ( _
ByVal HWnd As Long, ByVal nIDEvent As Long) As Long

Public TimerID As Long, TimerSeconds As Single, tim As Boolean
Dim Counter As Long
Dim wLink As String

'~~> Start Timer
Sub StartTimer()
    '~~ Set the timer for 1 second
    TimerSeconds = 1
    TimerID = SetTimer(0&, 0&, TimerSeconds * 1000&, AddressOf TimerProc)
End Sub

'~~> End Timer
Sub EndTimer()
    On Error Resume Next
    KillTimer 0&, TimerID
End Sub

Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, _
ByVal nIDEvent As Long, ByVal dwTimer As Long)
    '~~> Open Workbook ontime
    wLink = "D:\GPE.xlsx"
    If Time = TimeSerial(17, 30, 0) Then Application.Workbooks.Open (wLink)
 
End Sub
Chào bạn
Minh muốn hỏi như sau:
1. File có code trên phải luôn bật phải không? Khi file đã mở người dùng phải chạy Sub StartTimer thủ công phải không ?
2. Máy mình đang dùng Office 64b nên nó báo lỗi như dưới. Bạn update sang version 64b được không ?
Cảm ơn bạn

upload_2017-10-9_21-41-33.png
 
Upvote 0
Chào bạn
Minh muốn hỏi như sau:
1. File có code trên phải luôn bật phải không? Khi file đã mở người dùng phải chạy Sub StartTimer thủ công phải không ?
2. Máy mình đang dùng Office 64b nên nó báo lỗi như dưới. Bạn update sang version 64b được không ?
Cảm ơn bạn

View attachment 184544
Chào bạn,

Xin trả lời câu hỏi của bạn:

1. File này phải chạy thì Code mới kích hoạt và bạn chạy StartTimer để khởi động. Việc thủ công hay tự động thì chưa hiểu rõ ý bạn lắm. Nếu tự động chạy khi mở file thì bạn cho vào code Workbook.Open là được.

2. Tôi không có bản 64bit để test, nhưng theo thông báo bạn thử tìm kiếm với từ khóa PtrSafe để chuyển đổi.
 
Upvote 0
Giải đáp nửa ý 1 cho bài #12:
Thiết lập macro là cho phép thì khi mở file chứa macro lên, Excel sẽ kiểm tra những thứ có trong macro. Có lỗi ==> Hiện cái bảng thông báo đó.
(Mặc dù macro không có chỗ nào là Run cùng với sự kiện mở file).
 
Upvote 0
1. Tự động mở máy tính (Bạn cần xem máy bạn có hỗ trợ tự động mở máy tính trong BIOS hay không)
2. Sử dụng một chương trình thứ 3 đặt ở chế độ tự động khởi động. Chương trình này sẽ tự động bật file excel chưa macro của bạn. Khi đó macro sẽ tự động chạy.
Mình không hướng dẫn cụ thể vì kiến thức bạn tự tìm hiểu, rủi ro cũng sẽ xảy ra tương ứng nếu bạn can thiệp quá nhiều vào hệ thống, đặc biệt là mấy cái auto.
Không nên lạm dụng chức năng auto khi mình không rõ làm sao nó hoạt động và rủi ro khi sử dụng.
 
Upvote 0
Web KT

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

Back
Top Bottom