ẩn file exel trong foder

Liên hệ QC

gakon_Office

Nguyễn Hoàng Nhi
Tham gia
18/9/11
Bài viết
176
Được thích
26
Xin hỏi GPE trong một file exel có code nào có thể làm ẩn chính nó được không ạ?
Giống như kích chuột phải chọn properties/Hide...
 
Bạn thử dùng lệnh sau:
SetAttr ThisWorkbook.Path & "\" & ThisWorkbook.Name, vbHidden
Vầy gọn hơn
PHP:
SetAttr ThisWorkbook.FullName, vbHidden
Nếu cần thì vầy luôn:
PHP:
SetAttr ThisWorkbook.FullName, vbHidden + vbSystem
(giống như kiểu virus làm ẩn file ấy)
------------------
Và cuối cùng, cách này luôn luôn ăn chắc trong mọi trường hợp
PHP:
CreateObject("Scripting.FileSystemObject").GetFile(ThisWorkbook.FullName).Attributes = vbHidden
hoặc
PHP:
CreateObject("Scripting.FileSystemObject").GetFile(ThisWorkbook.FullName).Attributes = vbHidden + vbSystem
(sẽ không bị lỗi khi đường dẫn là tiếng Việt có dấu)
 
Lần chỉnh sửa cuối:
Upvote 0
Xin hỏi thêm.
Nếu mà window đang để ở chế độ show thì sao?
Có cách nào làm cho nó trở lại chế
độ Do not show được không.
Kèm theo lệnh Refesh nữa.
 
Upvote 0
Bạn chỉ cần cho code vào sự kiện

Private Sub Workbook_BeforeClose(Cancel As Boolean)
.......
End Sub

Vậy là ok
 
Upvote 0
Xin hỏi các chuyên gia có VBA nào ẩn luôn foder chứa file đó không hoặc là coppy file từ foder này sang foder khác được không?
Nếu có xin cho em một ví dụ với.Thanks!
 
Upvote 0
Copy files có thể dùng 2 cú pháp

1 FileCopy "Đường dẫn file hiện hành", "Đường dẫn file mới"
2 Name "Đường dẫn file hiện hành" As "Đường dẫn file mới"

Sao khi Copy rồi có thể xoá file cũ bằng cú pháp

Kill "Đường dẫn file muốn xoá"
 
Lần chỉnh sửa cuối:
Upvote 0
Copy files có thể dùng 2 cú pháp

1 FileCopy "Đường dẫn file hiện hành", "Đường dẫn file mới"
2 Name "Đường dẫn file hiện hành" As "Đường dẫn file mới"

Sao khi Copy rồi có thể xoá file cũ bằng cú pháp

Killl "Đường dẫn file muốn xoá"

Anh trai có thể cho em xin một vi dụ cụ thể được không?
Em chưa biết một tý tẹo nào về VBA cả. Anh nói vậy em không sao hiểu nổi.
Em cám ơn nhiều!
 
Upvote 0
Bạn xem 3 vi dụ bên dưới. Bạn chú ý đổi tên file và tên thư mục cho đúng với file và thư mục trên máy tính của bạn.

Sub CopyFile1()
FileCopy "D:\Data\test.xls", "D:\Data\Luu\A.xls"
End Sub

Sub CopyFile2()
Name "D:\Data\test.xls" As "D:\Data\Luu\B.xls"
End Sub

Sub XoaFile()
Kill "D:\Data\Luu\B.xls"
End Sub
 
Upvote 0
Bạn xem 3 vi dụ bên dưới. Bạn chú ý đổi tên file và tên thư mục cho đúng với file và thư mục trên máy tính của bạn.

Sub CopyFile1()
FileCopy "D:\Data\test.xls", "D:\Data\Luu\A.xls"
End Sub

Sub CopyFile2()
Name "D:\Data\test.xls" As "D:\Data\Luu\B.xls"
End Sub

Sub XoaFile()
Kill "D:\Data\Luu\B.xls"
End Sub

Anh trai ơi. Em không áp dụng được.
Em gửi tệp tin đính kèm anh sửa cho em với?
Àh em xin hỏi thêm nếu thay coppy bằng cut thì sửa lại thế nào anh? hay chỉ sửa bình thường coppy=cut.
Thanks!!!
 

File đính kèm

Upvote 0
1. Bạn vào Ổ đĩa D, tao ra 1 thư muc là Data, rồi tạo 1 file excel tên là test.xls

2. Bạn vào Ổ đĩa D, vào thư muc Data, trong thư mục Data tạo tiếp 1 thư mục Luu. xong rồi chạy code thử. Cẩn thận coi chừng gặp rắc rối nếu sử dụng vào muc đích không đúng.

Sub CopyFile()
'Code nay copy file, file goc giu nguyen
FileCopy "D:\Data\test.xls", "D:\Data\Luu\A.xls"
End Sub

Sub Movefile()
'code nay di chuyen file toi thu muc khac, file gốc bị mất
Name "D:\Data\test.xls" As "D:\Data\Luu\B.xls"
End Sub

Sub XoaFile()
'code nay xoa mat file luon
Kill "D:\Data\Luu\B.xls"
End Sub
 
Upvote 0
1. Bạn vào Ổ đĩa D, tao ra 1 thư muc là Data, rồi tạo 1 file excel tên là test.xls

2. Bạn vào Ổ đĩa D, vào thư muc Data, trong thư mục Data tạo tiếp 1 thư mục Luu. xong rồi chạy code thử. Cẩn thận coi chừng gặp rắc rối nếu sử dụng vào muc đích không đúng.

Sub CopyFile()
'Code nay copy file, file goc giu nguyen
FileCopy "D:\Data\test.xls", "D:\Data\Luu\A.xls"
End Sub

Sub Movefile()
'code nay di chuyen file toi thu muc khac, file gốc bị mất
Name "D:\Data\test.xls" As "D:\Data\Luu\B.xls"
End Sub

Sub XoaFile()
'code nay xoa mat file luon
Kill "D:\Data\Luu\B.xls"
End Sub

Em đang không hiểu tại sao khi thay đổi đường dẫn mà tên file cũng bị thay đổi luôn vậy?
PHP:
Sub CopyFile()
'Code nay copy file, file goc giu nguyen
FileCopy "D:\Data\test.xls", "D:\Data\Luu\A.xls"
End Sub
PHP:
Sub Movefile()
'code nay di chuyen file toi thu muc khac, file gốc bị mất
Name "D:\Data\test.xls" As "D:\Data\Luu\B.xls"
End Sub
Chẳng lẽ bắt buộc phải đổi tên file thì mới được sao anh?
Em không hiểu gì về VBA nếu câu hỏi buồn cười mong anh đừng nóng!
Thanks!!
 
Upvote 0
Sao không test thử rhì biết liền chứ gì. Không cần đổi tên file, tên file là do mình quyết định mà
 
Upvote 0
Sao không test thử rhì biết liền chứ gì. Không cần đổi tên file, tên file là do mình quyết định mà

Đây là foder em để trong ổ đĩa D:
Nhưng code vẫn báo lỗi. Em không biết nguyên nhân và cũng không biết sửa lại ntn nữa!
Anh trai đừng giận nhé! Chúc anh năm mới mọi việc tốt đẹp!
 

File đính kèm

  • Data.rar
    Data.rar
    8 KB · Đọc: 6
  • untitled.JPG
    untitled.JPG
    77.9 KB · Đọc: 4
Upvote 0
Code này bạn phải viết trong 1 file excel khác chứ, bạn viết code trong file Test.xls thi nó không chạy là đúng rồi. File Test.xls bạn đang mở thi làm sao nó di chuyển đi đâu được chứ
 
Upvote 0
Code này bạn phải viết trong 1 file excel khác chứ, bạn viết code trong file Test.xls thi nó không chạy là đúng rồi. File Test.xls bạn đang mở thi làm sao nó di chuyển đi đâu được chứ
Ơ! đúng rồi file đang mở thì không thể di chuyển được. Hì hì!
Nhưng mà ý của em là không cần dùng đến file file phụ mà thực hiện trên chính file phụ luôn.
Nghĩa là trường hợp này sẽ sảy ra sau khi file close. liệu có được không anh?
 
Upvote 0
Được chứ

Sub CopyFile()
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
FileCopy ThisWorkbook.FullName, "d:\data\luu\" & ThisWorkbook.Name
ThisWorkbook.Close False
End Sub
Sub MoveFile()
On Error Resume Next
Application.DisplayAlerts = False
ThisWorkbook.ChangeFileAccess xlReadOnly
Name ThisWorkbook.FullName As "d:\data\luu\" & ThisWorkbook.Name
ThisWorkbook.Close False
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom