2017-11-23 16 views
-1

毎日実行される別のルーチン用にファイルを準備する必要があるExcelマクロルーチンがあります。この準備では、t-1ファイルとt0ファイルのリンクが変更されます。Excel VBAマクロ - リンク名を変更する

私は通常行うコードは次のとおりです。

ActiveWorkbook.ChangeLink Name:= _ 
     "file path", NewName:=new_file_path, Type:=xlExcelLinks 

私の悩みは今ので、私はへの道が必要になり、この特定のルーチンのための新しいルーチンに変更するファイルのパスは常に同じではないということですそれらをすべて置き換えるために現在のリンクが何であるかを見つけることを自動化する。私は今、それがこのルーチンを呼び出すと、このファイルを開いているワークシートで、そのためにすべてのリンクを交換するためのトリックがある場合は私が最初の事は私を助けるだろうか

ですがあるため、新しいファイルパス古いリンクの名前/パスを言う必要はありません。誰か知っていますか?この手順を試してみてください、ブック内のすべてのExcelのリンクを変更するには

おかげ

+0

これが役立つかどうかはわかりません。現在のワークブックのパスと名前を返すための 'ActiveWorkbook.FullName'。パスを返すための 'ActiveWorkbook.Path'。 – newacc2240

+0

ありがとうございますが、それは私の問題ではありません。しかし、とにかくありがとう! – Luiza

答えて

0

Sub WbThs_ChangeLink_Excel() 
    Dim wbTrg As Workbook 
    Dim sLinkNew As String 
    Dim aLinks As Variant, vLink As Variant 

     sLinkNew = "@@VBA Links Replace - Target 3.xlsb" 'Change as required 

     Set wbTrg = ThisWorkbook 'Change as required 

     Rem Set array with all excel links 
     aLinks = ActiveWorkbook.LinkSources(xlExcelLinks) 

     Rem Replace each excel Link 
     If Not IsEmpty(aLinks) Then 
      For Each vLink In aLinks 
       wbTrg.ChangeLink Name:=vLink, NewName:=sLinkNew, Type:=xlExcelLinks 

     Next: End If 

     End Sub 

が使用されたリソースに関する追加情報については、以下のページを参照してください:
Workbook.ChangeLink Method (Excel)
Workbook.LinkSources Method (Excel)
XlLink Enumeration (Excel)

関連する問題