Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Entri duplikat kode warna di bidang excel menggunakan warna bergantian

Proses yang Anda bicarakan adalah panggilan 'duplikat banding'. Sepasang Scripting.Dictionary objek harus menangani ini dengan mudah.

Sub colorDuplicateColor2()
    Dim d As Long, dODDs As Object, dEVNs As Object, vTMPs As Variant
    Dim bOE As Boolean
    
    Set dODDs = CreateObject("Scripting.Dictionary")
    Set dEVNs = CreateObject("Scripting.Dictionary")
    dODDs.CompareMode = vbTextCompare
    dEVNs.CompareMode = vbTextCompare
    
    With Worksheets("Sheet7")
        If .AutoFilterMode Then .AutoFilterMode = False
        
        With .Range(.Cells(1, "C"), .Cells(Rows.Count, "C").End(xlUp))
            
            With .Columns(1)
                .Cells.Interior.Pattern = xlNone
            End With
            
            With .Resize(.Rows.Count - 1, 1).Offset(1, 0)
                vTMPs = .Value2
            End With
            
            For d = LBound(vTMPs, 1) To UBound(vTMPs, 1)
                'the dictionary Items have to be strings to be used as filter criteria
                If Not (dODDs.exists(vTMPs(d, 1)) Or dEVNs.exists(vTMPs(d, 1))) Then
                    If bOE Then
                        dODDs.Item(vTMPs(d, 1)) = CStr(vTMPs(d, 1))
                    Else
                        dEVNs.Item(vTMPs(d, 1)) = CStr(vTMPs(d, 1))
                    End If
                    bOE = Not bOE
                End If
            Next d
            
            With .Columns(1)
                .AutoFilter Field:=1, Criteria1:=dODDs.Items, Operator:=xlFilterValues
                .SpecialCells(xlCellTypeVisible).Interior.Color = RGB(210, 210, 210)
                'use this to band the entire row
                '.SpecialCells(xlCellTypeVisible).EntireRow.Interior.Color = RGB(210, 210, 210)
                'use this to band the row within the UsedRange
                'Intersect(.Parent.UsedRange, .SpecialCells(xlCellTypeVisible).EntireRow).Interior.Color = RGB(210, 210, 210)
                .AutoFilter
                .AutoFilter Field:=1, Criteria1:=dEVNs.Items, Operator:=xlFilterValues
                .SpecialCells(xlCellTypeVisible).Interior.Color = RGB(255, 200, 200)
                .Cells(1).EntireRow.Interior.Pattern = xlNone
            End With
            
        End With
        
        If .AutoFilterMode Then .AutoFilterMode = False
    End With
    
    dODDs.RemoveAll: Set dODDs = Nothing
    dEVNs.RemoveAll: Set dEVNs = Nothing
    Erase vTMPs

End Sub

Data harus diurutkan pada kolom kriteria duplikat tentunya.

Proses ini dapat dengan mudah disesuaikan untuk pita baris penuh atau baris-dalam-blok-data.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mendapatkan rata-rata 10 siswa teratas dari setiap sekolah

  2. Dapatkan Jumlah Terbesar di Database mySQL di PHP

  3. pilih semua kolom dengan grup menurut dalam kueri kriteria hibernasi

  4. Hubungkan beberapa tabel di database yang berbeda? MySql

  5. Urutan MySQL dengan Dua Kolom