Đặt mật khẩu cho sheet ở một tập tin khác?

Liên hệ QC

Hoàng Nhật Phương

Thành viên gắn bó
Tham gia
5/11/15
Bài viết
1,895
Được thích
1,219
Xin chào các bạn, tôi sử dụng code để copy dữ liệu sang 1 tập tin mới và đặt mật khẩu cho sheet trong tập tin mới vừa tạo:
Mã:
 Sub CopySheetToNewWorkbook()
    Dim wb As Workbook, sh As Worksheet, n As Integer
    Set wb = Workbooks.Add
    Set sh = ThisWorkbook.Worksheets(1)
    Application.DisplayAlerts = False
    For n = wb.Worksheets.Count To 2 Step -1
        wb.Worksheets(n).Delete
    Next n
    Set shNew = wb.Worksheets(1)
    shNew.Name = "CopySheetToNewWorkbook"
    sh.Range("A1:E10").Copy: shNew.Range("A1").PasteSpecial
    With wb
        .SaveAs ThisWorkbook.Path & "\Test CopySheetToNewWorkbook.xlsx", FileFormat:=xlOpenXMLWorkbook
        .ActiveSheet.Protect Password:="123"
        .Close
    End With
    Application.DisplayAlerts = True
 End Sub

Nhưng với code trên thì trong quá trình chạy hệ thống không thấy báo lỗi nhưng mật khẩu của sheets(1) trong tập tin vừa khởi tạo không được đặt.
Nhờ các bạn giúp đỡ.
 
Xin chào các bạn, tôi sử dụng code để copy dữ liệu sang 1 tập tin mới và đặt mật khẩu cho sheet trong tập tin mới vừa tạo:
Mã:
 Sub CopySheetToNewWorkbook()
    Dim wb As Workbook, sh As Worksheet, n As Integer
    Set wb = Workbooks.Add
    Set sh = ThisWorkbook.Worksheets(1)
    Application.DisplayAlerts = False
    For n = wb.Worksheets.Count To 2 Step -1
        wb.Worksheets(n).Delete
    Next n
    Set shNew = wb.Worksheets(1)
    shNew.Name = "CopySheetToNewWorkbook"
    sh.Range("A1:E10").Copy: shNew.Range("A1").PasteSpecial
    With wb
        .SaveAs ThisWorkbook.Path & "\Test CopySheetToNewWorkbook.xlsx", FileFormat:=xlOpenXMLWorkbook
        .ActiveSheet.Protect Password:="123"
        .Close
    End With
    Application.DisplayAlerts = True
End Sub

Nhưng với code trên thì trong quá trình chạy hệ thống không thấy báo lỗi nhưng mật khẩu của sheets(1) trong tập tin vừa khởi tạo không được đặt.
Nhờ các bạn giúp đỡ.
Sửa thử thế này.
Mã:
 Sub CopySheetToNewWorkbook()
    Dim wb As Workbook, sh As Worksheet, n As Integer
    Set wb = Workbooks.Add
    Set sh = ThisWorkbook.Worksheets(1)
    Application.DisplayAlerts = False
    For n = wb.Worksheets.Count To 2 Step -1
        wb.Worksheets(n).Delete
    Next n
    Set shNew = wb.Worksheets(1)
    shNew.Name = "CopySheetToNewWorkbook"
    sh.Range("A1:E10").Copy: shNew.Range("A1").PasteSpecial
    With wb
        .Sheets("CopySheetToNewWorkbook").Protect Password:="123"
        .SaveAs ThisWorkbook.Path & "\Test CopySheetToNewWorkbook.xlsx", FileFormat:=xlOpenXMLWorkbook
        .Close
    End With
    Application.DisplayAlerts = True
 End Sub
 
Upvote 0
Sửa thử thế này.

Mã:
 Sub CopySheetToNewWorkbook()

    Dim wb As Workbook, sh As Worksheet, n As Integer

    Set wb = Workbooks.Add

    Set sh = ThisWorkbook.Worksheets(1)

    Application.DisplayAlerts = False

    For n = wb.Worksheets.Count To 2 Step -1

        wb.Worksheets(n).Delete

    Next n

    Set shNew = wb.Worksheets(1)

    shNew.Name = "CopySheetToNewWorkbook"

    sh.Range("A1:E10").Copy: shNew.Range("A1").PasteSpecial

    With wb

        .Sheets("CopySheetToNewWorkbook").Protect Password:="123"

        .SaveAs ThisWorkbook.Path & "\Test CopySheetToNewWorkbook.xlsx", FileFormat:=xlOpenXMLWorkbook

        .Close

    End With

    Application.DisplayAlerts = True

End Sub

Cảm ơn chú giaiphap
Vậy là phải đặt mật khẩu cho sheet trước khi SaveAs.
Chú cho cháu hỏi thêm, code tại bài 1 cháu debug từng dòng thì sheet trong tập tin mới vẫn được tạo mật khẩu bình thường.Nhưng khi chạy liền 1 lúc thì lại không có mật khẩu?
Bài đã được tự động gộp:

Cảm ơn chú giaiphap
Vậy là phải đặt mật khẩu cho sheet trước khi SaveAs.
Chú cho cháu hỏi thêm, code tại bài 1 cháu debug từng dòng thì sheet trong tập tin mới vẫn được tạo mật khẩu bình thường.Nhưng khi chạy liền 1 lúc thì lại không có mật khẩu?
Ah đúng rồi hehe, thì ra là không save thì mật khẩu không lưu.
Cảm ơn chú ạ
 
Upvote 0
Cảm ơn chú giaiphap
Vậy là phải đặt mật khẩu cho sheet trước khi SaveAs.
Chú cho cháu hỏi thêm, code tại bài 1 cháu debug từng dòng thì sheet trong tập tin mới vẫn được tạo mật khẩu bình thường.Nhưng khi chạy liền 1 lúc thì lại không có mật khẩu?
Tôi đố bạn thế này nghe! Khi bạn tạo file Excel mới, bạn gõ một số dữ liệu xong bạn lưu file, lưu xong bạn đặt mật khẩu sheet, sau đó đóng file. Thế khi đó file bạn khi mở lên sheet có mật khẩu hay không? (Bạn đừng hỏi lại tôi là bạn chọn Yes trước khi đóng file nghe).
Câu thứ hai: Lệnh sau dùng để làm gì vậy bạn?
Mã:
Application.DisplayAlerts = False
 
Upvote 0
Web KT

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

Back
Top Bottom