2016-04-04 3 views
0

HYPERLINKの式を持つセルの列をlink_locationにハイパーリンクされたフレンドリ名だけのセルに変換する必要があります。例えば、= HYPERLINK( "https://www.google.com/search?hl=en&q= "& SUBSTITUTE(A2、""、 "+")& "& TBM = ISCH & gws_rd = SSL"、 "Gは画像")それにGの画像を有している細胞に数式が生成するハイパーリンクにハイパーリンクされます。 https://www.google.com/search?hl=en&q=search+term&tbm=isch&gws_rd=ssl。私はWordに貼り付けてExcelに貼り付けることでこれを行うことができますが、コピー/ペーストトリックかマクロかにかかわらず、Excel内で行う必要があります。私は理解して考えるExcelはハイパーリンクの数式をフレンドリーな名前のリンクに変換します

+0

あなたが見たいもののサンプルテーブル/出力を投稿できますか? – BruceWayne

+0

HYPERLINK数式を、マウスでセルを右クリックしたときにハイパーリンクをクリックしたときと同じフォーマットに変換したい場合は、「表示するテキスト:」フィールドと「https: [住所]欄に/www.google.com/search?hl=ja&q=search+term&tbm=isch&gws_rd=sslと入力します。 –

+0

ああ、セルを見ると、セルに数式を入れるのではなく、URLにリンクされたテキスト「G画像」が必要ですか? – BruceWayne

答えて

0

、これは(必要に応じてrngを調整)してみてください:

編集を:新しいコードを、以下のコメントにつき:

Sub replace_Hyperlink_Formula_With_Text() 
Dim linkWS As Worksheet, newWS As Worksheet 
Dim linkText$, url$, address$, subPart$ 
Dim cel As Range, rng As Range 
Dim commaPos& 

Set linkWS = Sheets("Sheet1") ' Change this to the sheet name that has =Hyperlink("http://...","Link") 
Set newWS = Sheets.Add 
newWS.Name = "Links Only" ' or whatever you want the non-Hyperlink Formula sheet to be called. 

Set rng = linkWS.Range("A1:A2") ' Edit this as needed 

For Each cel In rng 
    linkText = cel.Value 
    commaPos = InStrRev(cel.Formula, ",") 

    subPart = WorksheetFunction.Substitute(linkWS.Range("A2"), " ", "+") 
    url = Mid(cel.Formula, WorksheetFunction.Search("(", cel.Formula) + 2, commaPos) 
    Debug.Print url 

    commaPos = InStrRev(url, ",") 
    url = Left(url, commaPos - 2) 
    url = WorksheetFunction.Substitute(url, "&", ";", 1) 
    Debug.Print url 


    ' Now, trim SUBSTITUTE out of it 
    Dim leftUrl$, rightURL$ 
    leftUrl = Left(url, WorksheetFunction.Search(";", url) - 2) 
    rightURL = Mid(url, WorksheetFunction.Search("&", url) + 2, Len(url)) 
    url = leftUrl & subPart & rightURL 
    Debug.Print url 
    ' cel.ClearContents 
    address = cel.address 
    newWS.Range(address).Hyperlinks.Add anchor:=newWS.Range(address), address:=url, TextToDisplay:=linkText 
Next cel 

End Sub 

それは場しのぎだが、それは&Substitute...&を解析することに成功しなければなりません部品を交換して、A2のものと交換してください。

+0

これは美しく機能しました。ありがとう!対応するセルの別のシートにこれらのハイパーリンクされたセルを作成し、元のシートに数式を残すようにこれを簡単に変更する方法はありますか?それは絶対に必要なわけではありませんが、私はそれについて考えて、それについて前に考えなかったのは残念です。 –

+0

@DaveA - もちろん、問題ありません。私はコードを編集し、それがあなたのために働くのであれば、答えとしてマークしてください(投稿の左にあるチェックアウトの輪郭をクリックしてください)。 – BruceWayne

+0

申し訳ありませんが、正しくURLを作成していないことがわかりました。 https://www.google.com/search?hl=ja&q=%22&SUBSTITUTE(A –

関連する問題