2016-09-22 3 views
1

私はサブフォルダのデータを取得するマクロを持っています。しかし、私はまた、メインフォルダから何かをしたい。1つ上のフォルダに移動します

私はHow to get current working directory using vba?に見えたがactiveworkbookパスを変更する必要があります:パスは現在の作業ディレクトリではないかもしれないとして

Application.ActiveWorkbook.Path might be "c:\parent\subfolder" 

が、私はエクセル365 VBA

答えて

4

を使用して

"c:\parent\" 

を望みます文字列からパスを抽出する必要があります。

最後\を見つけて、左にすべての文字を読む:

ParentPath = Left$(Path, InStrRev(Path, "\")) 

あなたは、現在のディレクトリChDir ".."の周りに作業している場合があるレベルまであなたをジャンプします、新しいパスがCurrDirで返すことができます。

+0

私はそれが常に作業ディレクトリ(この場合は!)にあると言わなければなりません。しかし、知って良い! – indofraiser

+0

次のように試してください:$(application.ActiveWorkbook.Path、InStrRev(application.ActiveWorkbook.Path、 "\") - 1) – Vityata

+0

ありがとうございました。私はコードを一番早いものにしたいと思った! (メインコード上) – indofraiser

1

これを行う最も信頼性の高い方法は、Scripting.FileSystemObjectを使用することです。

With CreateObject("Scripting.FileSystemObject") 
    Debug.Print .GetParentFolderName(Application.ActiveWorkbook.Path) 
End With 
関連する問題