作者: C_Law 時間: 2018-8-15 16:51 標題: Excel VBA 檔名問題
我想用一個 Cell 的字串作為檔名去儲存計算結果。
我知 Windows 有些檔名限制,例如:
檔名內不可以有 / * \ ? ...etc 的符號
space 和 dot 不可以用作檔名的第一個字
PRN, CON, AUX, LPTx, COMx...etc 不能用作檔名(x 是數字)
請問 Excel VBA 本身有無 Function 去檢查一個字串可否用作檔名?
作者: xiao 時間: 2018-8-18 08:15
本帖最後由 xiao 於 2018-8-18 08:19 編輯
好像沒有, 不過試試看自己捕獲 error 400
- sub xxx
- On Error GoTo Error400
- ..
- ..
- exit sub
- Error400:
- MsgBox Err.Description
- end sub
https://www.automateexcel.com/vba/validate-filenames
作者: Bugdog 時間: 2018-8-18 10:18
我咁解決:用所有符號黎split個string, 如果split出來個array有多過1個string咪知有冇
作者: C_Law 時間: 2018-9-2 00:10
唔該兩位師兄先!
放低了個 Programme 一段時間,剛剛先至得閒再繼續寫落去。
之前 Google 過一輪,都係要逐個不能用的字符、不能用的檔名去檢查。
本來諗住懶,直接在個 Cell 入面打個檔名就算,最終都係投降,正正經經用 GetSaveAsFilename 去入 Filename。如果入個 Windows 不容許的 Filename,按「儲存」時會出 Warning。
- Dim fName As Variant
- fName = False
- Do
- fName = Application.GetSaveAsFilename(ThisWorkbook.Path, "Wave file (*.wav), *.wav")
- Loop Until fName <> False
- MsgBox ("#" & fName & "#")

