[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでフィルタ掛けた後 重複値に色をつける』(らら)
いつもお世話になっております
教えていただけたら幸いです
下記の様に フィルタかけていますが
抽出後M列に重複がある場合
色をつけたいですどの様にすればいいのでしょうか
宜しくお願いいたします
Private Sub ComboBox3_Change()
With ActiveSheet
If Not .AutoFilterMode Then .Range("A1").AutoFilter Else If .FilterMode Then .ShowAllData End If .Range("A1").AutoFilter Field:=3, _ Criteria1:="=*" & Me.ComboBox3.Text & "*" End With End Sub
< 使用 Excel:Excel2010、使用 OS:Windows10 >
Sheets("main").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
Sub Test1()
Sheets("main").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Sheets("Sheet2").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False
Dim i As Long, j As Long
For i = 1 To 18
For j = 13 To 13
If WorksheetFunction.CountIf(Range("m2:m18"), Cells(i, j)) > 1 Then
Cells(i, j).Interior.ColorIndex = 6
End If
Next j
Next i
Sheets("Sheet2").Select
Range("A2", Cells(Rows.Count, "p").End(xlUp)).Select
Selection.Copy
Sheets("main").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
End Sub
(らら) 2017/06/02(金) 16:55
色を付けるとかそれ以前の問題だと思うのだけど・・・ 気になった点、メモ入れたのでもう一度自分で頑張ってみませんか? Sub Test1() Sheets("main").Select '■セルの選択がないので、求めた結果にならない場合がある ' Selectなしでコード組みなおしてみてはどうですか? Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select Selection.PasteSpecial Paste:=xlPasteValues Dim i As Long, j As Long For i = 1 To 18 For j = 13 To 13 '■13 to 13ってなんですか? jのループなくして、Cells(i, "M")でいいのでは? If WorksheetFunction.CountIf(Range("m2:m18"), Cells(i, j)) > 1 Then Cells(i, j).Interior.ColorIndex = 6 End If Next j Next i Sheets("Sheet2").Select Range("A2", Cells(Rows.Count, "p").End(xlUp)).Select Selection.Copy '■コピーした後、何もしていないようですが、何がしたいのですか? Sheets("main").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select End Sub
(稲葉) 2017/06/02(金) 18:44
仕事と仕事の合間
なるべく 今はなるべく 頭だけで書き直さないようにやってるもので
後で修正すればいい感じで とりあえず動いてるから
いいかなって思ってます
Sheet mainはフィルター掛かってる状態で戻すだけなんですけどね
ここが うまく選択できないだけなんです
(らら) 2017/06/02(金) 18:59
推測しかできないけど、こういうことであってるの? Private Sub ComboBox3_Change() With Sheets("main") If Not .AutoFilterMode Then .Range("A1").AutoFilter ElseIf .FilterMode Then .ShowAllData End If .Range("A1").AutoFilter _ Field:=3, _ Criteria1:="=*" & Me.ComboBox3.Text & "*" End With End Sub
Sub Test1() Dim r As Range Dim rr As Range With Sheets("main") .Select .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Select.Copy End With With Sheets("Sheet2") .Select .Range("A1").PasteSpecial Paste:=xlPasteValues Set rr = Range("M2", .Cells(.Rows.Count, "M").End(xlUp)) For Each r In rr If WorksheetFunction.CountIf(rr, r.Value) > 1 Then r.Interior.ColorIndex = 6 End If Next i .Range("A2", Cells(Rows.Count, "p").End(xlUp)).Copy '■コピーした後、結局何がしたいのかわかりません。 End With Sheets("main").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select End Sub (稲葉) 2017/06/02(金) 19:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.