你不需要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個按鈕。
到目前爲止您嘗試過什麼?用您提到的當前正在運行的代碼/宏更新您的問題,以便我們知道從哪裏開始。 –