2017-12-21 3 views
1

Excelでに続いてをハイパーリンクにすることはできますか?私はマクロと他の方法を使用することに非常にオープンです。私は検索の時間後に「ソリューション」の次のタイプが見つかりましたが、彼らは動作しません:次のハイパーリンクからExcelを停止する

  1. 無効にすべてのハイパーリンクをSelection.Hyperlinks.Delete
  2. しているExcelが自動的にハイパーリンク-INGの
  3. 持っをオフに使用して自分自身にリンクするハイパーリンクを持つダミーシートで、その後の起動にVBAを使用する

私はワークシートを所有していないので、これらは機能しません。私の仕事は、ユーザーの公式またはサブを使って、同僚のレポート/アクション/計算を自動化することです。ワークシートの所有者は、保持したいファイルに多くのリンクを含んでいます。私は自分のリンクを恣意的に削除することはできません。しかし、トラブルシューティングとプログラミングは、時には(たいていはキーボードを使ってナビゲートしているが、たまには)リンクをクリックしてポップアップとそのすべてのジャンクが発生することがあるため、私はまた、ダミーシートを作成することはできません。ワークシートには約10,000行のデータが含まれているため、ファイルサイズが膨らんでしまう恐れがあります。どんな助けもありがとう!ありがとう!

+0

この情報はごくわずかであり、あなたの質問に答えるには不十分です。いくつかの(サンプル)データのスクリーンショットを追加してください。または、シートをより詳細に説明してください:固定列、固定行のハイパーリンク、その他のタイプの識別子がありますか? – Luuklag

+0

さらに詳しい情報[vba-not-follow-hyperlinks](https://www.mrexcel.com/forum/excel-questions/733537-vba-not-follow-hyperlinks.html) – QHarr

+0

このブックを戻しますか?ユーザー間で転送しますか?実際のハイパーリンクを保持するscreentipsオプションと現在のセルにリンクしている可視ハイパーリンクは、少しの再設計のように見えます。 – QHarr

答えて

0

これにより、選択した選択肢からハイパーリンクが削除されます。

Sub removelinks() 

    Dim rng As Range 

    For Each r In Selection 
    rng.Hyperlinks.Delete 
    Next 

End Sub 
0

あなたが使用することができます

Sub NoLinks() 
ActiveSheet.Hyperlinks.Delete 
End Sub 

または

別の方法でそれを行うには、ハイパーリンクセルが空の場合は、使用できます。

Sub RemoveHyperlinks() 
For Each theHyperlink In ActiveSheet.Hyperlinks 
    If theHyperlink.Range.Value = "" Then 
     theHyperlink.Delete 
    End If 
Next 
End Sub 

よろしく

Elmnas

0

ファイルの作業中にハイパーリンクを一時的に無効にしてから、終了したらハイパーリンクを再度有効にするとします。可能な解決策の1つは、それらを別々の一時的なシートに格納することです。

Sub DisableLinks() 
    Dim ws As Worksheet 
    Dim ts As Worksheet 
    Set ts = ActiveSheet 
    Set ws = Worksheets.Add(after:=ts) 

    Dim hylink As Hyperlink 
    Dim destlink As Hyperlink 
    For Each hylink In ts.Hyperlinks 
     If hylink.Range.Value <> "" Then 
      ws.Range(hylink.Range.Address) = hylink.Range.Value 
      If hylink.SubAddress = "" Then 

       Set destlink = ws.Hyperlinks.Add(anchor:=ws.Range(hylink.Range.Address), Address:=hylink.Address, TextToDisplay:=hylink.TextToDisplay) 

      Else 
       ws.Hyperlinks.Add anchor:=ws.Range(hylink.Range.Address), Address:=hylink.Address, SubAddress:=hylink.SubAddress, TextToDisplay:=hylink.TextToDisplay 

      End If 
     hylink.Delete 
     End If 
    Next hylink 
    ws.Visible = xlVeryHidden 
End Sub 

Sub RestoreLinks() 
Dim ws As Worksheet 
    Dim ts As Worksheet 
    Set ts = ActiveSheet 
    Set ws = Worksheets(ts.Index + 1) 

    ws.Visible = xlSheetVisible 
    Dim hylink As Hyperlink 
    For Each hylink In ws.Hyperlinks 
     If hylink.Range.Value <> "" Then 
      If hylink.SubAddress = "" Then 

       ts.Hyperlinks.Add anchor:=ts.Range(hylink.Range.Address), Address:=hylink.Address, TextToDisplay:=hylink.TextToDisplay 
      Else 
       ts.Hyperlinks.Add anchor:=ts.Range(hylink.Range.Address), Address:=hylink.Address, SubAddress:=hylink.SubAddress, TextToDisplay:=hylink.TextToDisplay 

      End If 
     hylink.Delete 
     End If 
    Next hylink 

    ws.Delete 
End Sub 
+0

私は今休暇のために現在作業中です。しかし、これは非常にスマートな方法です。これは実際に私の要求を満たす最初の提案です(いくつかの範囲またはシートではありません.hyperlinks.delete haha​​)。私は一度これを試してみると、私はあなたに戻ってきます。前もって感謝します! – DWReyes

関連する問題