2017-03-02 10 views
2

私は、とりわけ、いくつかのセル内の外部ファイルリンクを更新するマクロを作成しようとしています。現在、セル内のファイルの場所と変更先のファイルの場所は別のタブのユーザーによって指定されています。VBA Excel:ユーザーセル入力を使用してリンクを編集するにはどうすればよいですか?

私はfind/replaceでこれを試みました。

Range("b3").Formula = Replace(Range("B3").Formula, "\\folder\file", "\\folder\newfile") 

次に、このテキストが置き換えられ、リンクが正しく更新されます。また、これはうまく動作

oldlocation= "\\folder\file" 
newlocation= "\\folder\newfile" 

Range("b3").Formula = Replace(Range("B3").Formula, oldlocation, newlocation) 

:私は入力して場所を変更した場合、oldlocationnewlocationを言います。私は場所の定義(:「\フォルダ\ファイル」例えばB3):変更した場合でも、それはもはや作品

oldlocation= Range("b3").text 
newlocation= Range("b4").text 

を - 変更なし、またはエラーとコードの行の上を通過。私は素早くチェックし、の範囲( "b3")を指定してください。 & "\ folder \ file"は両方ともテキスト文字列のようです。その後、私は困惑する。私は見つけたいくつかの異なる検索/置換フォーマットを試しましたが、すべて同じ結果を得ました。私は何が欠けていますか?

+0

replaceコマンドの前にDebug.Printの古い場所newlocationを追加して、実際に読み取った内容を確認してください。たぶん.textの代わりに.valueを試してみませんか? str()関数を使用して、必要に応じて文字列としてキャストすることができます。 – SgtStens

答えて

0

あなたはoldlocation変数は、セル(あなたがセルに表示されるデータ)ではない含まれているセルの数式の値を持つことになります

oldlocation= Range("b3").text 

などの文字列を置換する定義するときに問題があります現在の参照であるため、replace関数は置換される文字列を見つけません。 置換する場所を Range("b3").formula文字列から抽出し、それを処理する必要があります。

+0

ありがとうございます。それを固定した – Tanaerian

+0

それを聞いてうれしいです。答えを他の人のための解決策にしてください! – ArchiCAT

関連する問題