2017-01-13 11 views
0

のエントリに一致した場合に、リンクファイル名のブロックと列があり、そしてキーと値を持つ列があります:コピーセルの値が別のリスト

First and second lists

私はリンクを割り当てる必要があります」 www.111.com」すべてAAAAA.jpgエリアに、 "www.222.com" BBBBB.jpgエリアへ、など

結果:

これはどのようにすることができますか?

+0

あなたのC列では、=ハイパーリンク(B1、A1) 'を実行できますか? – BruceWayne

+0

はい、しかし、私は最初のリストを埋めるために使用する必要がある単一の値を持って、2番目のリストに。私は、第1リストの列Aの値と第2リストの列Aの値を比較し、等しい場合は第2リストのB列のハイパーリンクを与えなければならないと思います。しかし、私はvbsを使用してそれを行う方法を知らない – ZeroEight

+0

ああ、私はあなたの2番目のリストからURLを一致させるために 'vlookup()'を使うことができると思います。最初のリストb1では、 '=ハイパーリンク(vlookup(a1、Sheet2!A1:B3,2)、A1)'のようなものになります。私はそれがうまくいくと思います。 – BruceWayne

答えて

0

私は次のVBAコードがあなたを助けると思います。

    1. 範囲(「myRange」)を宣言し、バリアント(「hText」)を宣言し、セルにA1(.JPGsのリストのトップセル)
    2. それを設定します。これは、これらのステップがありませんルックアップテーブルの「myRange」の値をD:E(ワークブックに合わせて変更)で検索します。 "hText"に値を格納する
    3. hTextがエラーかどうか(つまり、値がルックアップテーブルに見つかりません)を確認します。エラーの場合は、セルをスキップします。エラーでない場合は、手順5に進みます。
    4. 現在の "myRange"セルにハイパーリンクを追加します。 hTextをアドレスとして使用し、現在の "myRange"セルのテキストを表示されたテキストとして使用します。
    5. "myRange"を次のセルに移動します。空のセルに達するまでステップ3-6を繰り返します。

    ループが空のセルに到達するとループが停止するので、リストにギャップがある場合は、ループが最下部に届かないことに注意してください。また、参照テーブルに見つからない値はスキップされます(ハイパーリンクは追加されません)。

    .JPGのリストを含むシートが選択されている間にこのコードを実行します。

    Sub AddHyperlinks() 
    
    Dim myRange As Range 
    Set myRange = Range("A1") 
    
    Dim hText As Variant 
    
    Do Until IsEmpty(myRange) 
    
        hText = Application.VLookup(myRange.Value, Worksheets("Sheet1").Range("D:E"), 2, False) 
    
        If IsError(hText) Then 
         hText = "" 
        Else 
         ActiveSheet.Hyperlinks.Add Anchor:=myRange, Address:=hText, TextToDisplay:=myRange.Text 
         hText = "" 
        End If 
    
        Set myRange = myRange.Offset(1, 0) 
    Loop 
    
    End Sub 
    
  • +0

    ありがとう、ほぼ完了しました))このスクリプトは、www.111.comではなくlink file:/// C:\ Users \ user_name \ Desktop \ www.l1.comを提供しています。 – ZeroEight

    +0

    私はリンクの名前の前にhttps://を入れなければならないようです – ZeroEight

    +0

    @ZeroEight申し訳ありませんが、実際のリンクテキスト(例:ドット1つ1ドットコム)。 Excelはファイルやインターネットにハイパーリンクすることができるので、コンピュータ上の場所ではなくインターウェブ上を見るようにhttp(s)を入力する必要があります。 – elmer007

    関連する問題