MÌnh nghe nói Excel có thể xuất folder được bạn nào biết chỉ mình nha. đang cần rất gấp.
Chuyện là vầy: mình có 2 cột gồm cột số và tên. mình muốn bấm nút lệnh trong bảng tính tự nó sẽ tạo các folder theo danh sách. Với cú pháp tao Folder : số_Tên.
nhờ cao thủ làm giúp!
Cám ơn diễn đàn
Tôi giả sử bạn tạo thư mục ROOT nằm cùng thư mục với file hiện hành, các thư mục con nằm trong thư mục ROOT này.
1. Trang bị một hàm để loại dấu tiếng Việt (Unicode):
[GPECODE=vb]Function LoaiDauUni(Text As String) As String
Const CodUni = " 225 224 7843 227 7841 259 7855 7857 7859 7861 7863 226 7845 7847 7849 7851 7853 273 233 232 7867 7869 7865 234 7871 7873 7875 7877 7879 237 236 7881 297 7883 243 242 7887 245 7885 244 7889 7891 7893 7895 7897 417 7899 7901 7903 7905 7907 250 249 7911 361 7909 432 7913 7915 7917 7919 7921 253 7923 7927 7929 7925 193 192 7842 195 7840 258 7854 7856 7858 7860 7862 194 7844 7846 7848 7850 7852 272 201 200 7866 7868 7864 202 7870 7872 7874 7876 7878 205 204 7880 296 7882 211 210 7886 213 7884 212 7888 7890 7892 7894 7896 416 7898 7900 7902 7904 7906 218 217 7910 360 7908 431 7912 7914 7916 7918 7920 221 7922 7926 7928 7924 "
Const Str0dau = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyyAAAAAAAAAAAAAAAAADEEEEEEEEEEEIIIIIOOOOOOOOOOOOOOOOOUUUUUUUUUUUYYYYY"
Dim MaDau As String, KyTu As String, CodKyTu As String, NewText As String, ViTri As Long, n As Long
Text = Text & " "
MaDau = " "
For n = 1 To Len(Text) - 1
KyTu = Mid(Text, n, 1)
CodKyTu = AscW(KyTu) & String(5 - Len(CStr(AscW(KyTu))), " ")
ViTri = InStr(1, CodUni, CodKyTu, 0) / 5
If ViTri > 0 Then
NewText = NewText & Mid(Str0dau, ViTri, 1)
Else
NewText = NewText & KyTu
End If
Next
LoaiDauUni = NewText
End Function[/GPECODE]
2. Sử dụng code sau để tạo thư mục:
[GPECODE=vb]Sub MakeFolder()
Dim sRoot As String, sPath As String, Rng As Range, FS
On Error Resume Next
sRoot = ThisWorkbook.Path & "\ROOT"
Set FS = CreateObject("Scripting.FileSystemObject")
If Not (FS.FolderExists(sRoot)) Then MkDir sRoot
For Each Rng In Sheets("RESULT").[A2:A100]
If IsEmpty(Rng) Then Exit Sub
sPath = sRoot & "\" & Rng & "_" & Replace(LoaiDauUni(Rng.Offset(, 1)), " ", "")
If Not (FS.FolderExists(sPath)) Then MkDir sPath
Next
End Sub[/GPECODE]
Để đổi đường dẫn cho thư mục "mẹ", bạn chỉ cần sửa câu lệnh
sRoot = ThisWorkbook.Path & "\ROOT" là được.