Board logo

標題: 請問如何自檔案路徑的字串中,拆出路徑和檔名? [打印本頁]

作者: examsuper    時間: 2010-9-2 15:10     標題: 請問如何自檔案路徑的字串中,拆出路徑和檔名?

請問各位先進~
Windows("filename.xls").Activate是不是不能引用路徑?例如Windows("F:\我的文件\9908\filename.xls").Activate
如果這樣的話,我想把路徑和檔名分別拆出(路徑和檔名都不是固定長度),再 ChDir好了~
strDir = "F:\我的文件\9908\"
strFile = "filename.xls"
請問怎麼處理阿??
謝謝
作者: jackdream    時間: 2010-9-2 15:52

回復 1# examsuper

Windows("F:\我的文件\9908\filename.xls").Activate 這語法似乎沒必要..?
因為同一時間,不會開兩個同樣檔名的 excel 檔案..
作者: examsuper    時間: 2010-9-2 16:09

您誤會我意思了~是另一個檔
只是我把"完整路徑\檔名"當作參數,Windows().Activate就不WORK了~
作者: jackdream    時間: 2010-9-2 17:31

從字串取檔名的方式,可參考.
http://gb.twbts.com/index.php?topic=4068.0

如果用迴圈處理..
a = "F:\我的文件\9908\filename.xls"
For i = Len(a) To 1 Step -1
    If Mid(a, i, 1) = "\" Then
        file_name = Right(a, Len(a) - i)
        file_path = Left(a, i - 1)
        Exit For
    End If
Next i
作者: GBKEE    時間: 2010-9-2 18:45

回復 1# examsuper
    Windows("F:\我的文件\9908\filename.xls").Activate   改成如下
    Workbooks.Open("F:\我的文件\9908\filename.xls").Activate
  1. Sub Ex()
  2.     Dim file$, Ar
  3.    file = "F:\我的文件\9908\filename.xls"
  4.     Ar = Split(file, "\")
  5.     strDir = Replace(file, Ar(UBound(Ar)), "")
  6.     strFile = Ar(UBound(Ar))
  7.     ChDir strDir
  8.     Workbooks.Open (strFile)
  9. End Sub
複製代碼

作者: Hsieh    時間: 2010-9-2 20:02

  1. Sub nn()
  2. Dim fds As Object
  3. Set fds = CreateObject("Scripting.FileSystemObject")
  4. Set fs = fds.getfile("F:\我的文件\9908\filename.xls")
  5. msgbox "路徑 =" & fds.GetParentFolderName(fs)
  6. msgbox "檔名 =" & fs.Name
  7. End Sub
複製代碼

作者: luhpro    時間: 2010-9-3 00:35

本帖最後由 luhpro 於 2010-9-3 00:37 編輯

只要找到最後一個 "\" 的位置,
再依此將完整的檔名字串分別拆開取用即可.

Dim sStr$, i%, strDir$, strFile$
sStr = "F:\我的文件\9908\filename.xls"
i = InStrRev(sStr, "\", Len(sStr), 1)
strDir = Left(sStr, i)
strFile = Mid(sStr, i + 1, Len(sStr) - i)
作者: examsuper    時間: 2010-9-3 16:29

太感謝各位先進的熱心了,
小弟真是受教了~謝謝每一位~




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