2017-06-26 34 views
0

我已經越來越從另一個funtion通過在字符串中的字符,文件夾名像foldername = "a\\b\\c"foldername = "a"和我試圖找到該文件夾​​名稱中包含"\\"和替代"\\""__",分裂FOLDERNAME基於"__"和傳入一個數組。如何找到使用VBA

請看看我到現在爲止的嘗試。

樣本值:

If WorksheetFunction.Find("\\", foldername) = 1 Then 
     foldername = WorksheetFunction.Substitute(foldername, "\\", "__") 
     SheetNames() = Split(foldername, "__") 
End If 

我得到下面的錯誤。

enter image description here

+2

'INSTR'是檢查字符串中字符串的方法。但是可以理解你想要達到的目標嗎?您可以在VBA中使用'REPLACE'或'foldername = Join(拆分(文件夾名,「\\」),「__」)' –

+0

使用[INSTR()](https://www.techonthenet.com/excel/formulas /instr.php) –

+0

INSTR(文件夾名稱,「\\」)這將返回一個數字,那麼您是否建議相應地更改if條件? – Ashwin

回答

0
Dim a as Integer 

'consider current value of is `foldername = "a\\b\\c"` 

a = InStr(foldername, "\\") 

'if InStr is not able to find the value funtion returns 0 

If a <> 0 Then 
     foldername = Replace(foldername, "\\", "__") 
     SheetNames() = Split(foldername, "__") 
End If 

感謝您的建議傢伙,非常感謝。

+0

我強烈建議不要使用WorksheetFunction,特別是因爲VBA有一個專門用於此目的的內置函數。 –

0
SheetNames() = Split(foldername, "\\") 
foldername=join(sheetnames,"__") 

這將做到這一點。

+0

爲什麼你會使用這種方法而不是使用內置函數?替換(文件夾名,「\\」,「__」)會更有效率。 –

+0

只是一個選擇。 –