ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] §P§O­«½Æ«á¡A¨Ì·Ó±ø¥ó§R°£

Sub TEST()
Dim xR As Range, xDic, xU As Range, N&, V&, XX As Range
Set xDic = CreateObject("Scripting.Dictionary")
For Each xR In Range([A2], [A65536].End(xlUp))
¡@¡@N = xDic(xR.Value)
¡@¡@If N = 0 Then xDic(xR.Value) = xR.Row: GoTo 101
¡@¡@V = Application.CountA(Range(xR(1, 3), xR(1, 7)))
¡@¡@Set XX = xR
¡@¡@If V > 0 Then Set XX = Range("A" & N): xDic(xR.Value) = xR.Row
¡@¡@If xU Is Nothing Then Set xU = XX Else Set xU = Union(xU, XX)
101: Next
If Not xU Is Nothing Then xU.EntireRow.Delete
End Sub

ªí®æ©³¤Uªº»¡©ú¥ý§R°£¦A°õ¦æ¡A
µ{¦¡½X¤£¤Ó¦n¸ÑÄÀ¡A¥ý¥Î¬Ý¬Ý¡I

TOP

¦^´_ 9# Michelle-W

¡Õ«ôª÷¤kªº¦n¤Í¦W³æ¡Ö
¥H¤U¥u¸ÑÄÀÅÞ¿è¡A¤£¸ÑÄÀ»yªk¡A¬°¤F©ö©ó¤F¸Ñ¡A³¡¥÷¦³­×§ï¡A
¡exDic¦r¨åÀÉ¡f¤Î¡eUnionÁp¶°Àx¦s®æ¡fªº¥Îªk¡A¦Û¦æ¥h¬d»¡©ú¡G
¡@
Sub TEST()
Dim xR As Range, xDic, xU As Range, N&, V&, XX As Range
Set xDic = CreateObject("Scripting.Dictionary")
For Each xR In Range([A2], [A65536].End(xlUp))
¡@
¡@¡@N = xDic(xR.Value)
¡@¡@If N = 0 Then xDic(xR.Value) = xR.Row: GoTo 101
¡@¡@'¡Ä²Ä¤@¦¸¹J¨£§A¡A½Ð¯d¤U±zªº¹q¸Ü¸¹½X(¦C¸¹)¡GxDic(xR.Value) = xR.Row
¡@¡@'¡ÄN = 0¡Aªí¥Ü²Ä¤@¦¸ªº¬Û¹J¡A°O¦í¦C¸¹«á¡A²¤¹L¤U¤èªº»y¥y(GoTo 101)
¡@
¡@¡@V = Application.CountA(Range(xR(1, 3), xR(1, 7)))¡@
¡@¡@'¡Ä²Ä¤G¦¸¡]¤Î¥H«á¡^¹J¨£§A¡A½Ð°Ý§A¤f³U¦³¨S¦³¿ú¡]Àˬd«DªÅ®æ¡^
¡@
¡@¡@If V = 0 Then Set XX = xR
¡@¡@'¡Ä¦pªG¨S¦³¿ú¡A§A³o¦¸ªº·s¹q¸Ü¸¹½X§Ú¤£·Q¯d¡GSet XX = xR
¡@
¡@¡@If V > 0 Then Set XX = Range("A" & N): xDic(xR.Value) = xR.Row
¡@¡@'¡Ä¦pªG¦³¿ú¡A¤W¦¸¯dªº¹q¸Ü§@¼o¡GSet XX = Range("A" & N)
¡@¡@'¡Ä´«¯d³o¦¸ªº·s¹q¸Ü¸¹½X¡GxDic(xR.Value) = xR.Row
¡@
¡@¡@If xU Is Nothing Then Set xU = XX Else Set xU = Union(xU, XX)
¡@¡@'¡Ä±N­n§@¼oªº¹q¸Ü¸¹½X¶°¤¤°_¨Ó
¡@
101: Next
¡@
If Not xU Is Nothing Then xU.EntireRow.Delete
'¡Ä¤@¦¸§R¥h§@¼o¹q¸Ü¸¹½X
End Sub

TOP

        ÀR«ä¦Û¦b : µêªÅ¦³ºÉ¡D§ÚÄ@µL½a¡AµoÄ@®e©ö¦æÄ@Ãø¡C
ªð¦^¦Cªí ¤W¤@¥DÃD