2017-03-02 9 views
0

私は式で生成されたリンクから評価されている式を抽出しようとしています:抽出URL =ハイパーリンク()から

=HYPERLINK("https://www.google.com/search?q="&A1&B1,"Link")

I(A1vbaB1ありhelpを持っているが)多くのスレッド、さらにはSO threadsの提案を見たことがありますが、私はもっと多くのテキストがあると考えずに...q=に私を取得します。

私がこれまで持っていた最高の運がthis threadからである、と私はそれがこのようなB1まで検索するように微調整しました:

... 
S = Left(S, InStr(S, "B17") + 2) 
... 

しかし、それはhttps://www.google.com/search?q="&A1&B1を返します。

URLを返す前に、まずそれらのセルの内容を評価するにはどうすればよいですか?

+2

を使用すると、ヘルパーの列に文字列を構築し、それが違いを作る場合は見てみました?それを排除するだけでも、式やデータ(それが理にかなっている場合) –

+0

@MacroMan - ... !!!私が素早く '('と最初のカンマの間にあるテキストを抽出すると、私はそれを得ることができると思うDang、私は式から抽出することを考えていました。 () 'を使って試してみましょう。アイデアありがとうございました!編集:待って、hm。参照を保持しながらそれを抽出し、それをセルに入れて評価することができます。 ) '? – BruceWayne

+0

' Split(t、Chr(34))(1)&Range(Split(t、 "&")(1))のようなものです。値と範囲(左(分割(t、 "&")(2)、2))。値 – JNevill

答えて

2

私はこれを考え直していました。私の頭をまっすぐにしてくれた@MacroManに感謝します。私は次の、むしろぎこちないマクロをまとめました。

Function hyperlinkText(rg As Range) As String 
' Inspired by https://stackoverflow.com/questions/32230657/extract-url-from-excel-hyperlink-formula/32233083#32233083 
Dim sFormula As String 
Dim Test As String 

sFormula = rg.Formula 
Test = Mid(sFormula, WorksheetFunction.Search("""", sFormula), WorksheetFunction.Search(",", sFormula) - WorksheetFunction.Search("""", sFormula)) 
hyperlinkText = Evaluate("=" & Test) 
End Function 

これは、ように見えるURL取ることができます:
=HYPERLINK("https://www.google.com/search?q="&A17&B17,"Link")をし、評価URLを返す:

enter image description here

関連する問題