Xin Code có thể bỏ dấu Tiếng Việt ở tiêu đề các file

Liên hệ QC

597335

Thành viên hoạt động
Tham gia
19/2/12
Bài viết
126
Được thích
29
Các file của em các năm trước đây (2005, 2006...)do để dễ nhìn, cơ quan em đánh tên file đều có dấu Tiếng Việt, trong quá trình sử dụng rất nhiều bất tiện: một số tính năng, các phần mềm không thể thao tác được với file này, trong khi số file trên máy hàng ngàn file (một số file minh họa đính kèm).

Xin nhờ các anh, chị, các thày, cô giúp em Code bỏ dấu Tiếng Việt (để tên file trở thành không dấu), nếu làm được cho hàng loạt file Word, Excel trong 1 Folder thì tốt quá.

Xin mong nhận được sự trợ giúp.
 

File đính kèm

  • suu tam.rar
    258.1 KB · Đọc: 56
Các file của em các năm trước đây (2005, 2006...)do để dễ nhìn, cơ quan em đánh tên file đều có dấu Tiếng Việt, trong quá trình sử dụng rất nhiều bất tiện: một số tính năng, các phần mềm không thể thao tác được với file này, trong khi số file trên máy hàng ngàn file (một số file minh họa đính kèm).

Xin nhờ các anh, chị, các thày, cô giúp em Code bỏ dấu Tiếng Việt (để tên file trở thành không dấu), nếu làm được cho hàng loạt file Word, Excel trong 1 Folder thì tốt quá.

Xin mong nhận được sự trợ giúp.
Bạn thử File này xem. Copy File này vào thư mục cần loại bỏ dấu File và chạy Code
 

File đính kèm

  • Rename.xls
    40.5 KB · Đọc: 91
Upvote 0
Bạn thử File này xem. Copy File này vào thư mục cần loại bỏ dấu File và chạy Code

Bạn test thử trong trường hợp người ta gõ tiếng Việt bằng bảng mã Unicode tổ hợp xem code có chạy không?
Tôi chưa test nhưng tình nghi rằng code sẽ... tèo
Tốt nhất dùng module vietnamese_unicode_convert của anh siwtom cho chắc
 
Upvote 0
Bạn test thử trong trường hợp người ta gõ tiếng Việt bằng bảng mã Unicode tổ hợp xem code có chạy không?
Tôi chưa test nhưng tình nghi rằng code sẽ... tèo
Tốt nhất dùng module vietnamese_unicode_convert của anh siwtom cho chắc

Thầy cung cấp thông tin mà không dưa đường dẫn tới bài đó, cũng may em có tham gia trong topic đó em mới biết được, chứ không thì sao biết được Thầy ơi.

Cụ thể cái file chứa Module đó ở bài 14:

http://www.giaiphapexcel.com/forum/...óng-to-nội-dung-bên-trong&p=493352#post493352
 
Upvote 0

File đính kèm

  • ConvertFont.xlsm
    48.3 KB · Đọc: 113
Upvote 0
Bài #2 em lấy Function loại dấu của thầy Phạm Duy Long (cái này ở trong Addin hỗ trợ tiếng Việt). Giờ em đổi lại Function đổi dấu của bác SiwTom cho File bài 2. Các cấu trúc lệnh này nếu các bạn tìm trên GPE sẽ có rất nhiều chủ yếu là xào xáo và áp dung linh hoạt. Ví như cái vụ Rename tiếng Việt này cũng là tuyệt chiêu dhn46 đọc được trên GPE từ 1 bài viết của thầy NDU.
 

File đính kèm

  • Rename.xls
    61 KB · Đọc: 45
Upvote 0
Bài #2 em lấy Function loại dấu của thầy Phạm Duy Long (cái này ở trong Addin hỗ trợ tiếng Việt). Giờ em đổi lại Function đổi dấu của bác SiwTom cho File bài 2. Các cấu trúc lệnh này nếu các bạn tìm trên GPE sẽ có rất nhiều chủ yếu là xào xáo và áp dung linh hoạt. Ví như cái vụ Rename tiếng Việt này cũng là tuyệt chiêu dhn46 đọc được trên GPE từ 1 bài viết của thầy NDU.

Trong code của bạn có đoạn
SourceFile = ThisWorkbook.Path & "\" Fi.Name
là hơi thừa
Vì Ngoài thuộc tính Name (Fi.Name) trả về kết quả là TÊN FILE thì còn có thuộc tính Path (Fi.Path) trả về kết quả là đường dẫn đầy đủ của 1 file
Vậy nên chỉ cần vầy:
SourceFile = Fi.Path là được rồi
Ngoài ra: Cũng nên viết cho người ta 1 cái hộp OpenFile (với tùy chọn MultiSelect) để người ta muốn chọn thư mục nào tùy ý
--------------------
Cái bài mà Thầy Siwtom gửi lên sau (đường link em đưa bài trước) có cả hàm CHANGE CASE nữa, nó đầy đủ hơn đấy chứ!
Tôi chẳng khoái bài đó... Và nói chung không khoái bất cứ code nào có tên tiếng Việt (Ví dụ như LOAIDAU ---> Nghe thấy ớn)
 
Lần chỉnh sửa cuối:
Upvote 0
Đã chỉnh sửa theo gợi ý của thầy, nhưng em vẫn chưa làm được với MultiSelect Folder, híc chỉ chọn được 1 Folder.
 

File đính kèm

  • Rename.7z
    25.6 KB · Đọc: 69
Upvote 0
Đã chỉnh sửa theo gợi ý của thầy, nhưng em vẫn chưa làm được với MultiSelect Folder, híc chỉ chọn được 1 Folder.

Sao không dùng Application.GetOpenFileName cho khỏe
Ví dụ thế này:
Mã:
Sub Main()
  On Error Resume Next
  Dim SourceFile As String, TargetFile As String
  Dim sPath As String, sFile As String
  Dim vFile, Item
  vFile = Application.GetOpenFilename("All Files, *.*", , , , True)
  If TypeName(vFile) = "Variant()" Then
    With CreateObject("Scripting.FileSystemobject")
      For Each Item In vFile
        SourceFile = CStr(Item)
        sPath = .GetFile(SourceFile).ParentFolder.Path
        sFile = .GetFile(SourceFile).Name
        sFile = SourceToDest(sFile, 1, 5)
        TargetFile = .BuildPath(sPath, sFile)
        .MoveFile SourceFile, TargetFile
      Next
    End With
  End If
End Sub
Sub Main có dùng đến FileSystemobject, vậy ở trong đó ta dùng phương thức MoveFile luôn, cần gì phải thông qua Sub LoaiDauFile gì đó (cũng chỉ có 1 dòng code)
----------------
Lưu ý: Khi hộp Open File hiện lên, dùng chuột kết hợp với phím Ctrl hoặc Shift để chọn nhiều file
 
Lần chỉnh sửa cuối:
Upvote 0
Trong code trên có đoạn TargetFile = .BuildPath(sPath, sFile)
Đố mọi người biết dùng như thế để mần giống gì? Tại sao không là TargetFile = sPath & "\" & sFile
???
Thấy rõ ràng là kết quả tương đương mà
Ẹc... Ẹc...
 
Upvote 0
Sao không dùng Application.GetOpenFileName cho khỏe
Ví dụ thế này:
Mã:
Sub Main()
  On Error Resume Next
  Dim SourceFile As String, TargetFile As String
  Dim sPath As String, sFile As String
  Dim vFile, Item
  vFile = Application.GetOpenFilename("All Files, *.*", , , , True)
  If TypeName(vFile) = "Variant()" Then
    With CreateObject("Scripting.FileSystemobject")
      For Each Item In vFile
        SourceFile = CStr(Item)
        sPath = .GetFile(SourceFile).ParentFolder.Path
        sFile = .GetFile(SourceFile).Name
        sFile = SourceToDest(sFile, 1, 5)
        TargetFile = .BuildPath(sPath, sFile)
        .MoveFile SourceFile, TargetFile
      Next
    End With
  End If
End Sub
Sub Main có dùng đến FileSystemobject, vậy ở trong đó ta dùng phương thức MoveFile luôn, cần gì phải thông qua Sub LoaiDauFile gì đó (cũng chỉ có 1 dòng code)
----------------
Lưu ý: Khi hộp Open File hiện lên, dùng chuột kết hợp với phím Ctrl hoặc Shift để chọn nhiều file

Quả là hay quá, thật là hữu ích, em cảm ơn thày rất nhiều.
 
Upvote 0
Cái bài mà Thầy Siwtom gửi lên sau (đường link em đưa bài trước) có cả hàm CHANGE CASE nữa, nó đầy đủ hơn đấy chứ!

Để phù hợp với thời buổi hiện nay mà dính đến lập trình thì không cần dùng đến code để chuyển đổi, thường thì người ta "nhờ" vào những công cụ khác để làm điều đó, clip sau mình minh họa cho điều đó mà không có tí code nào ở Excel và cũng không dùng bất cứ code chuyển đổi tiếng Việt nào.

[video=youtube;letTePJfNn8]http://www.youtube.com/watch?v=letTePJfNn8&feature=youtu.be[/video]
 
Upvote 0
Bài #2 em lấy Function loại dấu của thầy Phạm Duy Long (cái này ở trong Addin hỗ trợ tiếng Việt). Giờ em đổi lại Function đổi dấu của bác SiwTom cho File bài 2. Các cấu trúc lệnh này nếu các bạn tìm trên GPE sẽ có rất nhiều chủ yếu là xào xáo và áp dung linh hoạt. Ví như cái vụ Rename tiếng Việt này cũng là tuyệt chiêu dhn46 đọc được trên GPE từ 1 bài viết của thầy NDU.
Hi anh @dhn46 Em thấy file rất hay ạ, tuy nhiên em hy vọng được anh giúp sửa dòng code thay vì thao tác mở folder chọn file thì em có đường dẫn folder sẵn, muốn chạy thay đổi tất cả tiêu đề tất cả file trong folder. Em cảm ơn anh ạ.
 
Upvote 0
Web KT

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

Back
Top Bottom