Giúp đỡ đổi tên thư mục tiếng Việt

Liên hệ QC

ehero

Thành viên mới
Tham gia
6/1/14
Bài viết
9
Được thích
0
Chào cả nhà, em đang có vướng mắc liên quan đến việc đổi tên thư mục là tiếng Việt như sau:
Tại cột A1 em có đường dẫn tên thư mục gốc là: E:\Thư mục gốc\Tài liệu 1
Tại cột A2 em có đường dẫn tên thư mục mới như sau: E:\Thư mục gốc\Tài liệu 2
Em dùng đoạn code sau nhưng bị lỗi do thư mục chứa tiếng Việt:

Sub doi_ten()

Dim sFolder_OldName As String
Dim sFolder_NewName As String


sFolder_OldName = Sheet1.Range("A1").value
sFolder_NewName = Sheet1.Range("A2").value

If Dir(sFolder_OldName) <> "" Then
Name sFolder_OldName As sFolder_NewName
MsgBox "Da doi ten."
Else
MsgBox "Thu muc khong ton tai."
End If

End Sub

Mong được mọi người giúp đỡ ạ!
 
Chào cả nhà, em đang có vướng mắc liên quan đến việc đổi tên thư mục là tiếng Việt như sau:
Tại cột A1 em có đường dẫn tên thư mục gốc là: E:\Thư mục gốc\Tài liệu 1
Tại cột A2 em có đường dẫn tên thư mục mới như sau: E:\Thư mục gốc\Tài liệu 2
Em dùng đoạn code sau nhưng bị lỗi do thư mục chứa tiếng Việt:

Sub doi_ten()

Dim sFolder_OldName As String
Dim sFolder_NewName As String


sFolder_OldName = Sheet1.Range("A1").value
sFolder_NewName = Sheet1.Range("A2").value

If Dir(sFolder_OldName) <> "" Then
Name sFolder_OldName As sFolder_NewName
MsgBox "Da doi ten."
Else
MsgBox "Thu muc khong ton tai."
End If

End Sub

Mong được mọi người giúp đỡ ạ!
Bác đổi tên thư mục được không bác, hay nhất định phải là "thư mục gốc"?
 
Upvote 0
Chào cả nhà, em đang có vướng mắc liên quan đến việc đổi tên thư mục là tiếng Việt như sau:
Tại cột A1 em có đường dẫn tên thư mục gốc là: E:\Thư mục gốc\Tài liệu 1
Tại cột A2 em có đường dẫn tên thư mục mới như sau: E:\Thư mục gốc\Tài liệu 2
Em dùng đoạn code sau nhưng bị lỗi do thư mục chứa tiếng Việt:

Sub doi_ten()

Dim sFolder_OldName As String
Dim sFolder_NewName As String


sFolder_OldName = Sheet1.Range("A1").value
sFolder_NewName = Sheet1.Range("A2").value

If Dir(sFolder_OldName) <> "" Then
Name sFolder_OldName As sFolder_NewName
MsgBox "Da doi ten."
Else
MsgBox "Thu muc khong ton tai."
End If

End Sub

Mong được mọi người giúp đỡ ạ!
Dùng
Mã:
If Dir(sFolder_OldName) <> "" Then

là sai. Nếu muốn kiểm tra sự tồn tại của TẬP TIN thì được, còn nếu là kiểm tra sự tồn tại của THƯ MỤC thì dùng sai. Phải là

Mã:
If Dir(sFolder_OldName, vbDirectory) <> "" Then

Ngoài ra hàm Dir và Name không phục vụ unicode, tức cả tiếng Việt.

Mọi thao tác với tập tin và thư mục như tạo mới, mở, đổi tên, di chuyển ... đều có thể thực hiện vd. nhờ Scripting.FileSystemObject

Mã:
Sub doi_ten()

Dim sFolder_OldName As String
Dim sFolder_NewName As String, fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

sFolder_OldName = Sheet1.Range("A1").Value
sFolder_NewName = Sheet1.Range("A2").Value

If fso.FolderExists(sFolder_OldName) Then
    fso.MoveFolder sFolder_OldName, sFolder_NewName
    MsgBox "Da doi ten."
Else
    MsgBox "Thu muc khong ton tai."
End If

Set fso = Nothing
End Sub
 
Upvote 0
Dùng
Mã:
If Dir(sFolder_OldName) <> "" Then

là sai. Nếu muốn kiểm tra sự tồn tại của TẬP TIN thì được, còn nếu là kiểm tra sự tồn tại của THƯ MỤC thì dùng sai. Phải là

Mã:
If Dir(sFolder_OldName, vbDirectory) <> "" Then

Ngoài ra hàm Dir và Name không phục vụ unicode, tức cả tiếng Việt.

Mọi thao tác với tập tin và thư mục như tạo mới, mở, đổi tên, di chuyển ... đều có thể thực hiện vd. nhờ Scripting.FileSystemObject

Mã:
Sub doi_ten()

Dim sFolder_OldName As String
Dim sFolder_NewName As String, fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")

sFolder_OldName = Sheet1.Range("A1").Value
sFolder_NewName = Sheet1.Range("A2").Value

If fso.FolderExists(sFolder_OldName) Then
    fso.MoveFolder sFolder_OldName, sFolder_NewName
    MsgBox "Da doi ten."
Else
    MsgBox "Thu muc khong ton tai."
End If

Set fso = Nothing
End Sub
Bác đã khai sáng cho em rất nhiều, em cám ơn bác
 
Upvote 0
Web KT

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

Back
Top Bottom