1

ファイルがあるディレクトリの親にセルの値を設定するにはどうすればよいですか?

退屈で繰り返しの多いタスクが待ち構えており、これをできる限り自動化しようとしていますが、VBA は許可されていません。

次のような Excel スプレッドシートのディレクトリ ツリーを作成します。

C:\…\Parent1\Dir2\File3.xlsx
   …\Parent4\Dir5\File6.xlsx
   …

この例では、ディレクトリを抽出する式が必要です。Parent1Parent4

[:ファイル名とディレクトリ名は特定の規則に従っていません。数字を探すための提案は、この匿名化された例と一致しますが、役に立ちません。]


ノート:

ネットのどこかで次の式を見つけました。これも必要であり、解決策を示している可能性があります。

  • 現在のシート名:
    = RIGHT(CELL("filename",A1), LEN(CELL("filename",A1)) - FIND("]", CELL("filename",A1)))

  • 現在のファイル名:
    = MID(CELL("filename",A1), FIND("[", CELL("filename",A1)) + 1, FIND(".", CELL("filename",A1)) - (FIND("[", CELL("filename",A1)) + 1))

  • 現在のディレクトリ名 ( MrExcel.comから):
    = TRIM(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2), "\", REPT(" ",100)), 100))
    投稿者は自分の方法を次のように説明しました。

    DIR を取得し、すべての「\」を 100 個のスペースに置き換えることで機能します。次に、一連のスペースと最終的な DIR 名になる正しい 100 文字を取得し、先行するスペースを削除します。

この最後は、親ディレクトリの抽出に適応できるはずですが、この適応を記述する方法がわかりません。

4

1 に答える 1

2

これを試して。この式がsavedファイルでのみ機能することは言うまでもありません。

=TRIM(LEFT(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2),"\",REPT(" ",100)),200),100))

スクリーンショット:

ここに画像の説明を入力

ロジック:

2 つの文字の間の文字列を検索するには、これを使用します。(「\」と言う間の検索)

=TRIM(LEFT(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",100)),200),100))

以下はフルパスを示します

=LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) - 2)

例えば:C:\Temp\Folder 1

したがって、最初の式に2番目の式を挿入するだけです

于 2013-04-19T00:23:00.507 に答える