2016-12-13 24 views
0

ファイル名(主に写真)への参照を含むスプレッドシートがあります。クリック可能な別のシートにリンクを作成してファイルを開きます。私は= HYPERLINK()を使用する方法を知っていますが、非常に多くのセルには単一のセル内でコンマで区切られた複数のファイル参照があります。研究から、単一のセルに複数のハイパーリンクをマップする方法がないことが明らかになっています。しかし、右側の列に移動する個々のセルへの参照をマップする簡単な方法はありますか?私は広範囲にオンラインで検索したが、他の同様のケースは見つからない。以下の簡単な例があります。Excel、CSVセルからハイパーリンクを生成

入力セル例: "ae345_asd、c3stryui"

募集出力: "C:/files/Photos/ae345_asd.jpg" "C:/files/Photos/c3stryui.jpg"

私も1つのセルに含まれる参照の数を制御することはできず、現在は5つ以上の参照を持つセルが存在します。

答えて

0

これはあなたを開始するはずです。アドレスを持つセルを強調表示し、マクロを実行します。ハイライトされた各セルをループし、コンマ区切り文字で内容を分割し、強調表示されたセルの右側にあるセルの各ハイパーリンクを作成します。このメソッドはネストされたループを使用しており、大量のデータを処理する場合は遅くなりますが、ここではそうではないと推測しています。

Sub splitHyperLinks() 
    Dim sel As Range 
    Set sel = Selection 

    Dim arr() As String 
    Dim cell As Range 
    Dim i As Long 

    'Loop through each cell highlighted 
    For Each cell In sel 
     arr = Split(cell, ",") 

     'Loop through each link in cell 
     For i = 0 To UBound(arr) 
      'Create hyperlink 
      cell.Offset(0, i + 1).Parent.Hyperlinks.Add Anchor:=cell.Offset(0, i + 1), Address:="C:/files/Photos/" & arr(i) & ".jpg", SubAddress:="", TextToDisplay:="Link" 
     Next i 
    Next cell 
End Sub 

結果は

enter image description here

+0

これは素晴らしいですが、どのように私は、これは別のシートおよび開始列に表示するになるだろうか? – AmatuerCoder101

関連する問題