Board logo

標題: [發問] 請問如何讀取簡體檔名? [打印本頁]

作者: esperanto    時間: 2011-6-14 10:52     標題: 請問如何讀取簡體檔名?

本帖最後由 esperanto 於 2011-6-14 11:05 編輯

想請問前輩們:

我想用VBA將一個資料夾內的檔名列出,
但遇到簡體檔名時,會變成?或是空白,
請問該如何解決??

我的程式碼如下:
With ActiveSheet
n = .[A65536].End(xlUp).Row + 1
Range(.Cells(4, 1), .Cells(n, 4)).ClearContents
path1 = CStr(.Range("B1")) & "\"
file1 = Dir(path1): r = 1
i = 4
Do While file1 <> ""
  .Cells(i, 1) = file1
  i = i + 1
  r = r + 1
  file1 = Dir '取得下一個檔名
Loop
End With
End Sub

先謝謝各位了!
作者: mark15jill    時間: 2011-6-16 08:23

本帖最後由 mark15jill 於 2011-6-16 08:25 編輯

回復 1# esperanto

基本上~
繁體系統內 讀取 簡體會變成亂碼..\
如果是少量的話 那建議用手動改比較快...
因為用EXCEL VBA 去讀取檔案 會造成幾種情形產生(個人經驗)
1.非正統文字(特殊繁體字) 如 嵵 這個字,VBA會停止作業~~在未設定任何跳過錯誤的情況下
2.有空格 他也是不會讀取~~  如 王大   王大  (妻) 、 王小    、王小  (妻) 這四筆的話  兩筆OK 兩筆會有問題(不特定設定的情況下)

PS 如果有簡體字  你可以試著+一段判斷區域  看特殊的那幾個簡體字檔案的檔名 是否可以KEYIN 入VBA內
作者: esperanto    時間: 2011-6-16 13:48

To mark15jill :

謝謝大大的回覆。

所以讀簡體檔名這問題算是無解囉?
作者: mark15jill    時間: 2011-6-16 13:51

本帖最後由 mark15jill 於 2011-6-16 13:54 編輯

回復 3# esperanto

基本上 不單簡體字是無解~很多特殊符號 也是無解~
除非有額外+設定或者是判斷~~(不好意思 這個我不會~~)
像之前 我有在板上發問一些檔案搬移的問題,後來依據某大大的程式碼去執行搬移的程式,搬著搬著赫然發現
有時候 會給我罷工!!!(沒看錯 真的是罷工,檔案沒搬完就停掉,也沒錯誤訊息!!)
結果 查了程式碼及名稱,才發現只要是有空格、符號、特殊字,VBA內不承認的話,一概會有問題~~
作者: Hsieh    時間: 2011-6-16 14:16

本帖最後由 Hsieh 於 2011-6-16 19:47 編輯

回復 3# esperanto
這樣就能讀到簡體檔名
  1. Sub 簡體檔名()
  2. Dim fs
  3. Set fos = CreateObject("Scripting.FileSystemObject")
  4. Set fd = fos.getfolder(ThisWorkbook.Path) '檔案目錄
  5. Set fc = fd.Files
  6. For Each fs In fc
  7. r = r + 1
  8. Cells(r, 1) = fs.Name
  9. Next
  10. End Sub
複製代碼

作者: esperanto    時間: 2011-6-17 08:58

TO Hsieh

真是太感謝了!不但告知解決方法,還特地幫我修改程式。
那個繁簡互換的程式也很好用!

我想再請教一個問題:
當我將簡體檔名列在excel工作表中,我要如何從工作表中的檔名資料去找檔案?
例如我以Hsieh的程式讀取到簡體檔名:「另一种温暖.mp3」,顯示在cells(4,1),
然後我想再對這個檔案作處理(ex 更改檔名),但就算我從cells(4,1)抓資料,
只會得到「另一种?暖.mp3」這樣的字串,
導致我無法利用工作表的資料去找到硬碟中的這個檔案,
這該如何解決呢??




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)