2017-06-19 27 views
-2

我已經嘗試了幾個選項,但無法得到我想要的。 我有一張31頁的工作簿,每張表都有一個輸入數字條目的列。在一張紙上可以有重複,但不應在不同紙張之間重複。我應該怎麼做?在不同的工作表中找到重複項或發現重複的郵件框

到目前爲止我已經想出了另一片這需要的所有值從使用其它IF 31和與宏按鈕的幫助刪除重複在每一列中(每片材)。上面有一個條件格式,所以它在表格中顯示是否輸入了重複。但是,如果彈出窗口顯示有重複,則最好。

在片材中的所有條目我也有0和空值,這將是在在任何情況下每一列。

最好的解決辦法是在需要檢查時按下按鈕。

感謝您的任何建議!

難道我忘記提及我在VBA方面總是noob?我不認爲我嘗試過的東西是相關的。因爲我只需要將按鈕的代碼放置在每張紙上的「檢查」,它將檢查紙張的所有值,並在發現重複時給出消息,除了0和空白。

+0

到目前爲止您嘗試過什麼?用您提到的當前正在運行的代碼/宏更新您的問題,以便我們知道從哪裏開始。 –

回答

1

你不需要VBA。儘管我是一名軟件開發人員,但我儘可能使用盡可能小的VBA。

比方說你所有的31張值在每片在A1-A10。然後做每片以下:

首先創建一列與所述片材的唯一值。爲此你需要一個「矩陣公式」。跳過C1並在C2單元格中輸入以下公式,並用CTRL-SHIFT-ENTER(不只是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一個細胞。

如果你想有一個按鈕下這樣的結果我相信你將能夠創建一個宏這一點。

也許有較短的結果,但這是我想出的。

成功!

編輯:

好的,也許我對VBA太積極了。比方說,最後一個公式是AF1,那麼這就是你的宏:

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 

現在對於這個宏最簡單的選擇是放在一個快捷鍵下(查看 - >宏 - >查看宏 - >選擇'檢查'宏 - >選項... - >快捷鍵),例如CTRL-SHIFT-d。那麼你不需要每張紙上都有31個按鈕。