Viết code Sao lưu dữ liệu

Liên hệ QC

doanhhoang79

Thành viên hoạt động
Tham gia
31/3/08
Bài viết
142
Được thích
18
Viết dùm code để sao lưu dữ liệu:

Chào các anh chị trên diễn đàn,

Tôi đang quản lý một file Excel, tôi muốn khi sao lưu file này thành tên khác (dưới dạng SaveAs) tại một thời gian đã ấn định trước.
Chẳng hạn file này chỉ được phép sao lưu vào ngày 31/12 hàng năm, nếu kiểm tra thấy không phải ngày 31/12 thì hiện thông báo "Hôn nay không phải là 31/12, nên không thể sao lưu file này"

Mong các anh chị viết code hặc làm cách nào đó để đúng yêu cầu như trên được không ạ.

Mong sự giúp đỡ, Mong sự giúp đỡ,


Tôi đã làm thử nhưng chưa được như ý. Mong các cao thủ chỉ giúp
 

File đính kèm

Chỉnh sửa lần cuối bởi điều hành viên:
Bạn thử làm thế này xem sao
PHP:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
        If Month(Now) <> 12 Or Day(Now) <> 31 Then
            MsgBox "Chưa cần sao lưu"
            Cancel = True
        End If
    End If
End Sub
Lưu ý, file của bạn phải là file đã được đặt tên.
 
Upvote 0
Bạn thử làm thế này xem sao
PHP:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
        If Month(Now) <> 12 Or Day(Now) <> 31 Then
            MsgBox "Chưa cần sao lưu"
            Cancel = True
        End If
    End If
End Sub
Lưu ý, file của bạn phải là file đã được đặt tên.

Cảm ơn bạn, mình làm được rồi
 
Upvote 0
Workbook.Sheets("Name").SaveAs Filename:="C:\A.xls"
 
Upvote 0
Bạn thử làm thế này xem sao
PHP:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI Then
        If Month(Now) <> 12 Or Day(Now) <> 31 Then
            MsgBox "Chưa cần sao lưu"
            Cancel = True
        End If
    End If
End Sub
Lưu ý, file của bạn phải là file đã được đặt tên.


Mình thấy đề tài này hay, cũng muốn ứng dụng cho mục đích của mình, nhưng do ko hiểu về VBA. bạn có làm ơn giải thích làm thế nào để chạy code này trong một file đã được lưu rồi.
 
Upvote 0
Mình thấy đề tài này hay, cũng muốn ứng dụng cho mục đích của mình, nhưng do ko hiểu về VBA. bạn có làm ơn giải thích làm thế nào để chạy code này trong một file đã được lưu rồi.
Copy code rồi dán vào Thisworkbook là được rồi (Private Sub Workbook.... thì đương nhiên nó phải nằm trong Thisworkbook)
 
Upvote 0
Có lẽ tại em tối ý, ý của em là làm thế nào để thử cho nó chạy đc?. VD macro thì ALT+F8 và enter thì nó chạy, còn code dạng này thì em chưa biết cách dùng
 
Upvote 0
Có lẽ tại em tối ý, ý của em là làm thế nào để thử cho nó chạy đc?. VD macro thì ALT+F8 và enter thì nó chạy, còn code dạng này thì em chưa biết cách dùng
Theo ý nghĩa của code này thì chỉ khi nào ngày hệ thống đúng là 31 tháng 12 thì nó mới cho Save As (Save bình thường thì không sao)
Vì vậy bạn chỉ cần thí nghiệm như sau:
- Mở 1 file mới, gõ gì đó vào rồi lưu file
- Chèn code vào rồi gõ gì đó vào
- Bấm Save As xem nó nói gì
- Tạm chỉnh lại ngày hệ thống = 31 tháng 12 (năm nào cũng được)
- Bấm Save As xem nó "phản ứng" ra sao?
===> Từ đó suy ra kết luận
(mấy code loại này nó tự chạy, không có Atl + F8 được đâu)
 
Lần chỉnh sửa cuối:
Upvote 0
Vì bạn nói là chưa rành về VBA nên tôi xin bổ sung những giải thích của ndu như sau:
1. Bạn tạo 1 file mới như bình thường.
2. Nhấn Alt+F11 để mở chương trình soạn thảo VBE (Visual Basic Editor)
3. Giao diện màn hình sẽ có 2 phần chính, bên trái có 2 cửa sổ (thông thường là thế, nếu không thấy hãy bấm Ctrl+R) trong dó có 1 cửa số là Project - VBAProject, nhìn trong danh sách thì bạn sẽ thấy dòng chữ in đậm VBAProject(Book1) nếu file của bạn chưa đặt tên.
4. Bấm vào dấu + đứng trước dòng chữ VBAProject(Book1) sau đó bấm tiếp vào dòng chữ Microsoft Excel Objects để xuất hiện các Sheet của file trong đó bạn sẽ thấy dòng cuối cùng là ThisWorkbook. Hãy bấm đúp vào nó và paste đoạn code kia vào khung cửa sổ bên phải.
5. Thí nghiệm như ndu đã nói.
Chúc vui.
 
Upvote 0
Web KT

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

Back
Top Bottom