Board logo

標題: [技術討論] Excel VBA 檔名問題 [打印本頁]

作者: 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 編輯
我想用一個 Cell 的字串作為檔名去儲存計算結果。

我知 Windows 有些檔名限制,例如:
檔名內不可以有 / * ...
C_Law 發表於 2018-8-15 16:51


好像沒有, 不過試試看自己捕獲 error 400
  1. sub xxx

  2. On Error GoTo Error400
  3. ..
  4. ..
  5. exit sub

  6. Error400:
  7. MsgBox Err.Description

  8. 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。
  1.     Dim fName As Variant
  2.     fName = False
  3.     Do
  4.         fName = Application.GetSaveAsFilename(ThisWorkbook.Path, "Wave file (*.wav), *.wav")
  5.     Loop Until fName <> False
  6.     MsgBox ("#" & fName & "#")
複製代碼
[attach]2079284[/attach]





歡迎光臨 電腦領域 HKEPC Hardware (https://h2.hkepc.com/forum/) Powered by Discuz! 7.2