Excelでファントム外部リンクを削除する


24

削除できない外部リンクのあるExcelスプレッドシートがあります。

私はインターネットでかなり多くのことを読んでいますが、マイクロソフトは次のことをお勧めします

  • セル内の参照の場合: [*]の検索と置換を使用して、ワークシートのセル内のすべての参照を検索します。
  • 名前の参照の場合:ネームマネージャーを開き、そこに外部参照がないことを確認します。
  • オブジェクト内の参照の場合(これは非常に苦痛です):各オブジェクトを個別に選択し、数式バーを確認します。
  • グラフ内の参照(苦痛も):すべてのグラフのタイトルとデータシリーズの数式バーを確認します。

これにより、見つからない幻の外部参照が残っているため、さらにいくつか試してみます

  • Excelの[データ-リンクの編集]機能に続いて[リンクの解除]をクリックします(何も起こりません)
  • 「FindLink」プラグインを使用しました(私には機能しませんでしたが、使いやすいです)
  • MicrosoftのDeleteLinksプラグインを使用しました(これも機能せず、使いやすいものでもありません)

これを読んだ後、私はFindLinkも試しました。ステータスバーにステータスメッセージを表示して、検索しているシートを識別し、砂時計をくれましたが、1時間後も変更はありませんでした。ハングしたのか、非常に遅いのかを判断する方法はありません。この遅いループには、進行状況インジケータが必要です。Escapeキーを押したままにしても、ループから抜け出すことはなく、ループ内にDoEventsがないことを示唆しています。最後に、Excelを終了しました。
グレッグラヴァーン

1
ありがとう-あなたが質問で書いたものは本当に役に立ちました、そして他の人からも答えが出ました。私は、すべてを試してもリンクの編集ボックスにリンクが表示されることに注意しましたが、ワークブックを閉じて再度開くとうまくいきませんでした-リンクはすべて削除されました!
dunxd

回答:


27

他のワークブックからデータ検証範囲をコピーした場合、ファイルをコーミングするのに何時間も費やした他の人にとっても問題は存在します。

修正するには:

リボン->ファイル->問題の確認->互換性の確認

これにより、検証が外部シートを指しているかどうかを知らせるチェッカーが表示されます。

最も重要なことは、どのシートにあるかを教えてくれます。

とにかくシートを知ったら、シートに行きます。いま

リボン->ホーム->検索と選択の横の下矢印->データ検証。

これにより、データ検証が適用されているセルが選択されます。

いま

リボン->データ->データ検証

[ソース]フィールドの破損した参照を修正するか、必要ない場合は[すべてクリア]をクリックします。


Mac(Excel v15.37)の場合、このページのマクロ(dailydoseofexcel.com/archives/2009/05/04/…)は、データ検証でリンクを見つけるために機能します。コピーして貼り付けた後、おそらくすべての引用符を修正する必要があります。
-KJH

壊れたリンクがデータ検証で隠されているとは思いもしませんでした。ありがとう!!!
ショーンマッカーシー

12

結局、これを条件付き書式ルールまで追跡しました。

[ホーム-条件付き書式-ルールの管理]をクリックすると、次のダイアログが表示されます。このダイアログは比較的簡単に参照でき、外部参照を置き換えることができます。

ここに画像の説明を入力してください


これありがとう。それは誤って入り、私を夢中にさせていました!
グレッグリヨン

1
チェックするもう1つの場所は、「定義済みの名前」(式->ネームマネージャー)
-lsowen

2
数百の条件付き書式が設定されたスプレッドシートがあり、ルールでは外部ファイルを参照していることが示されませんでした。.XLSXの名前を.ZIPに変更し、file.zip \ xl \ worksheets \ sheet1.xmlを開いて、ファイルパスを検索し、セルの場所をメモしてから、ルールマネージャーを使用してそれらを見つけて削除することで、それらを見つけました。ファイルをコピーしてから、すべてのルールを削除し、保存、クローズ、再オープンして、そのシート/タブが問題の原因であるかどうかを特定できます。参考:superuser.com/a/957178/160219 superuser.com/a/1081277/160219 superuser.com/a/1134500/160219
グレッグ

私の場合、投稿されたソリューションはどれも私にとってはうまくいきませんでした。最終的に、削除のプロセスによって、同じフォームボタンが多数あるシートを発見しました。すべてのシートは、外部ワークブックに割り当てられて、上下に積み重ねられています。これは、ユーザーが別のブックからシートをコピーしたためです。午後全体が無駄になりました-経験を除いて!
-DaveU

3

ワークブックが大きい場合、外部参照を使用してフォーマット条件を見つけるのは簡単ではありません。それを見つけるために、このVBA関数を作成します。実行時間を短縮するために、80列と500行に制限されています。機能が停止するとき、あなたは尋ねる位置をチェックすることができます:

 ?foglio.name
 ?cella.row
 ?cella.column

    Public Function CercaLink()
    Dim Cella As Object, i&, Foglio As Object
    For Each Foglio In ActiveWorkbook.Sheets
       ActiveWorkbook.Sheets(Foglio.Name).Select
       For Each Cella In ActiveSheet.Cells
         If Cella.Column < 80 Then
           If Cella.FormatConditions.Count > 0 Then
              For i = 1 To Cella.FormatConditions.Count
                 If InStr(1, Cella.FormatConditions(i).Formula1, ":\") > 0 Then Stop
              Next
           End If
        End If
        If Cella.Row > 500 Then Exit For
     Next
  Next
  End Function
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.