6

セルからハイパーリンクを削除すると、書式設定も削除されます。

Selection.Hyperlinks.Delete

フォーマットを保持する方法はありますか、またはハイパーリンクを削除した後に再適用する必要がありますか?

4

8 に答える 8

7

解決策は電話することでした

Range.ClearHyperlinks

それ以外の

Range.Hyperlinks.Delete

前者はハイパーリンクをクリアし、フォーマットをそのまま残します。ここでの参照:https ://msdn.microsoft.com/en-us/library/office/ff194741.aspx

于 2017-01-27T12:04:18.633 に答える
2

これも少し奇妙なことだと思います...これがあなたに受け入れられるかどうかはわかりません。これを試して:

Selection.Hyperlinks(1).Address = ""

これは、ハイパーリンクがないように機能します。唯一の違いは、カーソルがデフォルトのプラス記号ではなく手に変わることですが、他のセルと同じようにクリックできます。

于 2012-05-14T17:56:29.503 に答える
2

上記の解決策は、マージされたセルを操作する場合に問題を引き起こします。これはその問題の周りで機能します

data = Selection.value
Selection.Value = ""                            'this removes the hyperlink
Selection.Font.Underline = xlUnderlineStyleNone 'remove the hyperlink underlining
With ActiveCell.Font                            'replace hyperlink blue with black
   .ThemeColor = xlThemeColorLight1
   .TintAndShade = 0
End With
Selection.Value = data
于 2014-06-05T14:35:00.367 に答える
1

フォーマットがザッピングされるのを防ぐ方法がわかりませんでした。私が思いついた回避策は、ハイパーリンクを削除する前にセルをコピーし、ハイパーリンクを削除した後にフォーマットをセルに貼り付けることでした。

' copy cell to remote location to "remember" formatting
ActiveCell.Copy Sheets("Templates").Range("a1")

' remove hyperlink
ActiveCell.Hyperlinks.Delete

' reapply formatting
Sheets("Templates").Range("A1").Copy
ActiveCell.PasteSpecial Paste:=xlPasteFormats

これを行うためのより良い方法を教えてください。あなたの回答を答えとして受け入れます。

于 2012-05-14T17:48:27.070 に答える
1
ActiveCell.Style = "Normal"

言い換えれば、あなたはそこにあるべきスタイルを再適用します。一方、「通常」は、Excellに存在するいずれかのセルスタイルの名前で変更できます。この方法で独自のスタイルを適用する場合は、それをセルスタイルリストに追加します。

さらに一歩進みたい場合。すでにそこにあるセルスタイルを取得し、文字列でキャッチして再適用できます。

Dim sStyleName as String
sStyleName = ActiveCell.Style 'Capture the current cellstyle
ActiveCell.Hyperlinks.Delete  'Remove the hyperlink
ActiveCell.Style = sStylename 'Reapply the cellstyle used before
于 2013-06-12T00:34:51.437 に答える
1
For Each cll In Selection
    cll_val = cll.Value
    cll.ClearContents
    cll.Value = cll_val
    With cll.Font
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .Underline = xlUnderlineStyleNone
    End With
Next

これは、貼り付け情報を別の場所との間でコピーしたくない場合にも役立ちます。マージされたセルでこれを試したことはありませんが、これは機能するはずです。

于 2015-04-23T11:44:17.097 に答える
0
Dim temp As Variant
temp = (RangeObject).Interior.Color
(RangeObject).Hyperlinks.Delete
(RangeObject).Interior.Color = temp
于 2014-05-06T19:57:22.417 に答える
0

透明で、ハイパーリンクが必要なセルをオーバーレイする図形にハイパーリンクを適用することもできます。

ここでの欠点は、リンクされていないときにカーソルがマウスオーバーで変化することです。また、エンドユーザーが図形を移動したり、削除したりすることもできます。

于 2014-11-14T21:41:28.673 に答える