2017-06-19 3 views
-2

私はいくつかのオプションを試していますが、 私は31枚のワークブックを持っており、各シートには数字の入力欄があります。 1つのシートには重複がありますが、異なるシート間に重複はありません。私はどうすればいいのですか?異なる用紙で重複を検索するか、重複が見つかった場合にメッセージボックスを表示する

これまでは、IFを使用して他のシートからすべての値を取得し、マクロボタンの助けを借りて各シートの各列の重複を取り除く別のシートがありました。一番上に条件付き書式があり、重複が入力されたかどうかはそのシートに示されます。しかし、重複があるというポップアップがあるのが一番良いでしょう。

すべてのエントリのシートには、すべての場合にすべての列に表示される0と空の値もあります。

ベストソリューションは、チェックが必要なときにいつでも押すことができるボタンを持つことです。

ありがとうございました!

私はVBAの点で全然ノブだと言えることを忘れましたか?私は試したことが関連しているとは思わない。各シートにボタンを配置するコードが必要なだけなので、すべての値でシートをチェックし、重複が見つかった場合は0と空を除くメッセージを表示します。

+0

これまでに何を試しましたか?あなたの質問を、現在作業中のコード/マクロで更新して、どこから始めるべきかを知ってください。 –

答えて

1

VBAは必要ありません。私はソフトウェア開発者ですが、私は可能な限りVBAを使用しないようにしています。

A1-A10のすべての用紙に31枚の用紙があります。次に、シートごとに以下を実行します。

最初にシートの一意の値を持つ列を作成します。そのためには、「行列式」が必要です。 (単に入力しないで!)C1をスキ​​ップして、セルC2とCTRL-SHIFT-ENTERと密接に次の式を入力します。

=IFERROR(INDEX($A$1:$A$10, MATCH(0, IF(ISBLANK($A$1:$A$10),1,COUNTIF($C$1:C1, $A$1:$A$10)), 0)),"") 

今、あなたは行列式を取得します。ご覧のように、数式のまわりには角括弧{}があります。 数式をC11に入力すると、A1-A10の一意の値のみが得られます。これを31回実行した後、31列のC列すべてを概要シートに参照します。

オーバービューシートは条件付き書式で表示されます。それはhereと説明されています。このソリューションを使用すると、重複を正確に特定するのが非常に簡単になります。

しかし、あなたが値を持っている代わりに、書式設定、二概要シートを作成し、A1に次の式を入れたい場合は:

=IF(ISNUMBER(OverviewSheet!A1),IF(OverviewSheet!A1<>0,COUNTIF(OverviewSheet!$A$1:$AE$10,OverviewSheet!A1)>1)) 

とセルAE10にこの数式を入力します。 TRUE/FALSEの全範囲が得られます。この式では空のセルとゼロも考慮されます。

今二概要シート上のどこかにこの式を配置します。

=COUNTIF(A1:AE10,TRUE())>0 

あなたは31枚以上の重複を持っている場合今、あなただけTRUEまたはFALSEが含ま一つのセルを持っています。

この結果をボタンの下に表示するには、このためのマクロを作成できると確信しています。

おそらく短い結果があるかもしれませんが、これが私が思いついたものです。

成功!

EDIT:

OK、多分私はVBAについてあまりにも陽性でした。ビューマクロ> - - >マクロ -

Sub Check() 
    If ThisWorkbook.Sheets("OverviewSheet2").Range("AF1").Value = True Then 
     MsgBox "We have duplicates!" 
    Else 
     MsgBox "We have no duplicates." 
    End If 
End Sub 

今、このマクロのための最も簡単なオプションは、ショートカットキー(ビューの下で置くことです>:これはマクロである、のは、最後の式はAF1であるとしましょう'チェック'マクロ - >オプション - >ショートカットキー)を選択します。 CTRL-SHIFT-D。その後、すべてのシートに31個のボタンは必要ありません。

関連する問題