2016-07-22 10 views
2

私は列Aに6桁の数値を持つ値の列を持っていました。これは完全に働いた動的なハイパーリンク関数を静的にする

=HYPERLINK("C:\...Project\" & A2 & ".pdf", A2)

を、千を通じてそれを下にドラッグします。同じ6桁のタイトルとPDFファイルを含むフォルダにこれらのそれぞれをハイパーリンクにするために、私はセルA2に次の関数を挿入しましたまたはセルが各エントリのハイパーリンクを作成しました。

しかし、ここでは列A1をこれらの新しいハイパーリンクに置き換えたいと考えています。ハイパーリンクの列をペーストして各セルのダイナミックエントリを削除することができると考えましたが、これは可能ではないようです。私は簡単な解決策があると確信しています。何か不足していますか?交換する前に列Bを列Aとは独立に存在させることはできますか? VBAソリューションはありますか?

+0

VBAは許可されていますか? –

+0

確かに、それも素晴らしいだろう – user1996971

+2

私はすでにそれを下に殴られたように見える... –

答えて

3

あなたはVBAプロシージャに迅速にこれを実行することができます。

Sub CreateHyperlinks() 
Dim cl As Range 

For Each cl In Range("B1:B100").Cells '## Modify as needed 
    cl.Hyperlinks.Add cl, cl.Value, , , cl.Offset(0,-1).Value 
Next 

End Sub 
+0

素晴らしいです。それはとてもうまくいく。私はForループ内の関数に慣れていません。これは私が使用したワークシート関数とは何か異なりますか?ありがとう、ミル! – user1996971

+2

'= HYPERLINK()'の式はアドレスとフレンドリ名に依存しています。このバージョンでは、彼はB1からB100の全てがハイパーリンクを作っていると言っていますが、そのアドレスは左に1列ですが、フレンドリ名は単なる既存の値です。したがって、ハイパーリンクを使用して列を作成する代わりに、既存の列をハイパーリンクにすることになります。 –

1

を誰もがVBAなしでそれをやりたい万が一、あなたが例えば

<html><a href=1>2 

=HYPERLINK(1,2) 

を置き換えることができた場合

ですが、動的な式の場合は複雑すぎます

=HYPERLINK("C:\...Project\" & A2 & ".pdf", A2) 

="<html><a href=""C:\...Project\" & A2 & ".pdf"">" & A2 

になりますし、それは、Excelに貼り付ける前に、(例えばメモ帳内の値を貼り付け、メモ帳で再びそれらをコピー)テキストとしてコピーする必要があります。

+0

ありがとう! – user1996971

関連する問題