2013-05-26 64 views
1

我寫的代碼可以顯示文件名到工作表中,但我想在顯示時刪除擴展名。我知道這應該是一個小改正,但我燒掉了嘗試選項。有人可以告訴我在哪裏必須添加一段我想錯過的代碼嗎?我嘗試下面的代碼。在網上很多類似的問題,但我不能設法提前發現it.Thanks ....如何刪除找到的文件的擴展名FSO?

Option Explicit 
Sub fileNames_in_folder() 
Application.ScreenUpdating = True 
Application.DisplayAlerts = True 
Dim fldpath 
Dim fld As Object, fil As Object, fso As Object, j As Long 
fldpath = "C:\" 
    On Error Resume Next 
Thisworkbook.Sheets("1").Activate 
'start count row 
    j = 11 
Set fso = CreateObject("scripting.filesystemobject") 
Set fld = fso.getfolder(fldpath) 
    For Each fil In fld.Files 
'here I have to add something due to expell the ".extension" 
Cells(j, 34).Value = fso.GetBaseName(fil.path) 
'count behaviour 
    j = j + 1 
    Next 
Columns("AH").AutoFit 
End Sub 
+0

讓我們清楚說明 - 除了文件擴展名外,您希望保留整個路徑+文件名嗎? –

+0

我更新了代碼!感謝伊萬,這就像一支矛! – user2151190

回答

6

沒有擴展名的文件名可以用GetBaseName Method得到:

Cells(j, 34).Value = fso.GetBaseName(fil.path) 
+0

嗨伊萬!你搖滾!!!!!!非常感謝!!!!這是doiing正是假設要做的!多麼美麗的解決方案!!!!!!!!!!!!!!!! – user2151190

0
If InStrRev(fil.Path, ".") <> 0 Then 
    Cells(j, 34).Value = Left(fil.Path, InStrRev(fil.Path, ".") - 1) 
End If 

假設存在「。」在文件名中。
即C:\ Test.txt將顯示爲C:\ Test

+0

如果有多個「。」會怎麼樣?「在文件名或甚至文件夾名稱?例如。 C:\ tst.pp \ MyFile – IvanH

+0

該代碼從後面查找第一個點。我假設有多個點的文件名將被處理。例如, c:\ test.xml.txt應該返回c:\ test.xml。 – shahkalpesh

+0

嗨Shahkalpesh,謝謝你的反應如此之快!當我填入代碼時,你的代碼顯示了路徑。在我的代碼中,只顯示帶有擴展名的文件名,但我想刪除擴展名:-)。也許我做錯了什麼? – user2151190