Office:コードを変更して、それぞれのワークシートの最後の行に重複、切り取り、コピーを識別します
以下のコードを使用して、E列に基づく重複行とcolumn(O)の一意の値を強調表示します
次に、アクティブなワークシートが何であれ、下の強調表示された行をすべて切り取って貼り付けます.
しかし、私が達成したかったのは、列AからUまでの重複のみを強調表示して、それぞれのワークシートの最後の行に移動することです.
たとえば、ワークシート「TOYOTA」で重複が見つかった場合、「TOYOTA」の最後の行に移動します
空白行が表示されないように、すべての行を上にシフトします.
明示的なオプション
Sub FindDuplicate()
Application.ScreenUpdating=False
Dim Item
For Each Item In Array( "AWEER"、 "JEBEL ALI"、 "MAN"、 "MAN 2020"、 "OPTARE" 、「SOLARIS」、「TOYOTA」、「VDL」、「VOLVO」、「VOLVO 2019」)
Sort_Prim Worksheets(Item)
Next
End Sub
Sub Sort_Prim(ByVal Ws As Worksheet)
Application.ScreenUpdating=False
Dim cell1 As Variant、Body As Range、Source As Range
Set Body=Ws.Range( "E2"、Ws.Range( "E"&Rows.Count).End(xlUp))
Set Source=Ws.Range( "O2"、Ws.Range( "O"&Rows.Count).End(xlUp))
Source.Interior.Color=xlNone
Body 1の各cell1の場合
If Application.WorksheetFunction.CountIf(Body、cell1)>1 And cell1 .EntireRow.Columns( "O").Value& ""="AM" Then
cell1.EntireRow.Interior.Color=xlColorIndexNone
ElseIf Application.WorksheetFunction.CountIf(Body、cell1)>1そしてcell1.EntireRow.Columns( "O").Value& ""="SP" Then
cell1.EntireRow.Interior.Color=RGB(255、0、0)
cell1.EntireRow.Cut Range( "A" &Rows.Count).End(xlUp).Offset(1、0)
ElseIf Application.WorksheetFunction.CountIf(Body、cell1)>1 And cell1.EntireRow.Columns( "O").Value& ""="BM" Then
cell1.EntireRow.Interior.Color=RGB( 204、204、255)
ElseIf Application.WorksheetFunction.CountIf(Body、cell1)>1 And cell1.EntireRow.Columns( "O").Value& ""="CM" Then
cell1.EntireRow.Interior.Color=RGB(153、204、255)
End If
Next
End Sub
返信リスト(回答:5)
こんにちは
あなたのシナリオとコードについての私の理解に従って私のアプローチ、
アレイ( "aweer"、 "Jebel Ali"、 "Man"、 "Man 2020"、 "Optare"、 "Solaris"、 "Toyota "、" VDL "、" Volvo "、" Volvo 2019 ")
1-基準配列「AM、BM、CM、およびSP」
に一致する重複項目を数えるためのヘルパー列を挿入します.式= xuctifs($ E $ 2:$ $ 20、$ 2,2,2,2,2:$ O $ 20、o2)とそれをドラッグします.
シナリオに従って範囲を調整します.
2-条件付きフォーマットを使用して、基準値
に従って列AからUへのセルを強調表示する:
のためのCF式"sp"=と($ v2>1、$ o2= "sp")==>>色REDRGB(255,0,0)
「SP」=および($ v2>1、$ O2= "CM")==>>カラーBluergb(153,204,255)
「BM」=および($ v2>1、$ O2= "BM")==>>カラーブルーRGB(204,204,255)
3-tableをソートする
「DUPの数」列ごとの値ごとに値ごとの
レベル
を追加することによって「基準」列aからzへの値による
ソートプロセスのマクロを録音して、現在のコードのループに挿入できます.
結果
注:
私は写真内のtableと代表の列に合うようにいくつかの列を隠します.
私のアプローチが役立っていない場合は、
ブックへのリンクを投稿するように要求して、アクセスできるようにして、問題を解決するために働きます.
このマクロを試すことができます
Sub FindandSortDuplicate()
ワークシートを暗くする
バリアントとして薄暗いアイテム
Dim CountRng、SourceRng、TableRng As Range
'' 'あなたのシート配列
Items=Array( "AWEER"、 "JEBEL ALI"、 "MAN"、 "MAN 2020"、 "OPTARE"、 "SOLARIS"、 "TOYOTA"、 "VDL"、 "VOLVO"、 "VOLVO 2019")
'' 'イベントをオフにします
Application.ScreenUpdating=False
シート(アイテム)の各Wについて
Sheets(Ws.Name).Activate
'' 'カウント重複範囲を設定します
Set CountRng=Ws.Range(Cells(2、 "V")、Cells(Rows.Count、 "V").End(xlUp))
'' '基準(ソース)範囲を設定します
Set SourceRng=Ws.Range(Cells(2、 "O")、Cells(Rows.Count、 "O").End(xlUp))
'' 'table全体を設定します
Set TableRng=Ws.Range(Cells(1、 "A")、Cells(Rows.Count、 "V").End(xlUp))
'' '' 2レベルのソート
Ws.Range( "V2").選択
ActiveWorkbook.Worksheets(Ws.Name).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(Ws.Name).Sort.SortFields.Add Key:= CountRng _
、SortOn:= xlSortOnValues、Order:= xlAscending、DataOption:= xlSortNormal
ActiveWorkbook.Worksheets(Ws.Name).Sort.SortFields.Add Key:= SourceRng _
、SortOn:= xlSortOnValues、Order:= xlAscending、DataOption:= xlSortNormal
ActiveWorkbook.Worksheets(Ws.Name).Sortを使用
.SetRange TableRng
.Header=xlYes
.MatchCase=False
.Orientation=xlTopToBottom
.SortMethod=xlPinYin
.適用
次で終わる
次のWs
'' 'イベントを元に戻す
Application.ScreenUpdating=True
MsgBox "すべて完了"
End Sub
応答2# ->にスキップ3 #PaupauDユーザーが数式を誤って削除する傾向があるため、数式を使用できないので、お世話になりました.
並べ替え手法が機能している間は、このEAの前に別のEAを実行して、並べ替えを行うことはできません
異なるパラメータセットに基づく.
ありがとうございます.
PowerPivotおよびPower Query(別名Get&Transform)を備えたExcel 365 Pro Plus
5つの列カテゴリを持つtableの重複レコードを見つける
tableの下部に重複するレコードを配置します.
保持されるオリジナルのソート順とサイズ.
数式なし、VBAマクロなし.
https://www.mediafire.com/file/52qp33jkomqr1nj/03_22_20.xlsx/file
https://www.mediafire.com/file/a76uqxov0nbhvw4/03_22_20.pdf/file
応答4# ->にスキップ5 #PaupauD特定の形式を持つ他のマクロがExcelファイルで実行されています.ピボットtableは役に立たなくなります.
これらの形式は変更してはなりません.そのため、私も苦労しています.ありがとうございます.
関連質問
- 複数のテーブルに散布ヘッダーを結ぶ
- VBA/VB.NETで複雑な文字列を作成する方法
- Excel 365
- Excelの "固定オブジェクトが移動する"エラーが表示されます(ただし、オブジェクトが見つかりません).
- Excel-データビジュアライザテーブルをVisioにインポートします
- 企業のExcelモデルへの既存の従業員へのアクセスを制限します
- VBA-Excel-DialogSheets.Show 2021-廃止予定?
- 評価日2式2の式2
- 範囲としてのVBA-BYVALターゲット原因コピーと貼り付け問題
- 2セルをマージするマクロを作成し、合計を取得するためにマージセルをグループ化します.