Mam macierz, która zawiera różne / te same wartości w pierwszej kolumnie i różne wartości w pierwszym rzędzie.
Chciałbym porównać wszystkie wiersze i wyróżnić zduplikowane wiersze. Dla każdego wiersza powinien sprawdzić kombinację wartości „+”, „-” i „/” oraz wyróżnić zduplikowane pary wierszy (potrójne itp.) W różnych kolorach (inny kolor dla każdej zduplikowanej pary)
Należy również założyć, że trzy wiersze jak poniżej są duplikatami. Will Przyjmie wartości „/” jako „+” i „-” i podświetli te wiersze również jako duplikaty.
Oto przykład wyniku makra, który chciałbym mieć (wiersze w tym samym kolorze są duplikatami);
EDYCJA: x4 i x7 są również duplikatami z x1 i x2. I są też inne duplikaty, których nie pokolorowałem. Właśnie pokolorowałem niektóre duplikaty, aby wyjaśnić mój problem.
x3 x9
wydaje się, że są takie same, ponieważx4 x7 x8 x10
jeszcze nie wydaje się, aby oznaczanie ich wyłączało.Odpowiedzi:
Chciałbym przekształcić twoje pasujące reguły w następujący sposób (mam nadzieję, że mam rację):
+
pasuje do wszystkiego w klasie[+/]
-
pasuje do wszystkiego w klasie[-/]
/
pasuje do wszystkiego w klasie[-+/]
Biorąc to pod uwagę, chodzi o utworzenie wzorca z konkatenacji łańcucha, który będzie działał jako pasujący wzorzec. Można to zrobić za pomocą wyrażeń regularnych, ale VBA ma metodę Like, która będzie działać równie dobrze, być może szybciej.
Konfigurujemy wszystko, najpierw wstawiając moduł klasy i zmieniając jego nazwę na cRowString
Moduł klasy
Następnie wprowadź ten zwykły moduł
Wybierz aktywny arkusz i uruchom makro
źródło
K1 = J Mod 4
na coś w styluK1 = J Mod (Ubound(arrColors) + 1)
Być może połącz zawartość (col-F), policz dopasowania (col-G), a następnie zastosuj format warunkowy na podstawie liczby zliczeń.
Takie podejście oznacza, że dwa zestawy wierszy o tej samej liczbie sztuk będą miały ten sam kolor.
źródło