Eu tenho uma matriz que inclui valores diferentes / iguais na primeira coluna e valores diferentes na primeira linha.
Eu gostaria de comparar todas as linhas e destacar linhas duplicadas. Para cada linha, deve-se verificar a combinação dos valores “+”, “-“ e “/” e deve-se destacar os pares de linhas duplicados (triplos etc…) em cores diferentes (cores diferentes para cada par duplicado).
Deve também assumir que três linhas como abaixo são duplicatas. Aceitará os valores “/” como “+” & amp; “-“ e irá destacar essas linhas também como duplicatas.
Aqui está um exemplo do resultado da macro que gostaria de ter (linhas da mesma cor são duplicadas);
EDITAR: x4 & amp; x7 também são duplicados com x1 & amp; x2.E há outras duplicatas que eu não colorizei. Eu apenas colorizei algumas das duplicatas para explicar meu problema.
x3 x9
parece ser o mesmo, assim comox4 x7 x8 x10
ainda não parece estar marcando definindo-os.Respostas:
Gostaria de reafirmar suas regras de correspondência da seguinte maneira (espero que esteja correto):
+
corresponde a qualquer coisa na classe[+/]
-
corresponde a qualquer coisa na classe[-/]
/
corresponde a qualquer coisa na classe[-+/]
Dado isso, é uma questão de criar um padrão a partir da concatenação de strings que atua como um padrão de correspondência. Isso pode ser feito usando expressões regulares, mas o VBA tem um método Like que funcionará tão bem, talvez mais rápido.
Nós configuramos as coisas primeiro inserindo um módulo de classe e renomeá-lo cRowString
Módulo de classe
Em seguida, insira este Módulo Regular
Selecione a planilha ativa e execute a macro
fonte
K1 = J Mod 4
para algo comoK1 = J Mod (Ubound(arrColors) + 1)
Talvez concatene o conteúdo (col-F), conte as correspondências (col-G) e aplique um formato condicional baseado na quantidade de contagem.
Essa abordagem significa que dois conjuntos de linhas com a mesma quantidade de contagem terão a mesma cor.
fonte