J'ai besoin d'appliquer une couleur dans un texte d'une cellule si la valeur n'est pas la même qu'une valeur dans une autre colonne. Quelle serait la meilleure approche pour cela? La façon dont je peux penser est assez chère.
FormatCondition cond = ColumnBRange.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlNotEqual, ColumnARange); cond.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
3 Réponses :
Le code suivant, ajoute une mise en forme conditionnelle à la plage de cellules de D1 à E10
Il compare les valeurs D1 = E1 ou D2 = E2 respectivement. Vous pouvez définir la couleur de la police ou la couleur remplir sur l'objet FormatCondition. P>
FormatCondition format =(FormatCondition)( targetSheet.get_Range("D1:E10", Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression, XlFormatConditionOperator.xlEqual, "=$D1=$E1", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing)); format.Font.Bold = true; format.Font.Color = 0x000000FF;
Mais comment gérer les gammes dynamiques?
@Buffer_Overflow Cochez la page LIEN pour la déclaration de méthode get_range, vous pouvez fournir une cellule 1 N 2 à l'aide de la feuille de cible.Cells [1,2] et tachetsheet.cells [3,4] respectivement. J'espère que tu le gs
Et si c'est juste une colonne duplicate seulement? Vérifiez tout d1 code> par exemple ... si deux doublons existent, mettez-la en surbrillance.
Vous devez modifier la condition des doublons dans la colonne = Countif ($ A $ 1: $ A $ 10, A1) = 1 où A1 à A10 est votre plage de valeurs.
Essayez ceci
Disons que vous voulez que vous souhaitez colorer des cellules Ensuite, vous pouvez faire le suivant P> B1: B10 code> si leurs valeurs ne sont pas égales à celles de
A1: A10 code>, c'est-à-dire
B1 A1 CODE> Résultats dans
B1 CODE> Être coloré,
B2 A2 CODE> Résultats dans
B2 CODE> Être coloré, etc. P>
Range columnBRange = (Range)oSheet.Range[oSheet.Cells[1,2], oSheet.Cells[10,2]];
Range columnARange = (Range)oSheet.Range[oSheet.Cells[1,1], oSheet.Cells[1,1]];
FormatCondition cond = (FormatCondition) ColumnBRange.FormatConditions.Add(XlFormatConditionType.xlCellValue, XlFormatConditionOperator.xlNotEqual, "="+ColumnARange.Address[false,true]);
cond.Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); //Red letters
cond.Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.LightYellow); //Light yellow cell background
Oui. Besoin d'appliquer la couleur au texte de la cellule en comparant avec la valeur d'une autre colonne. Mais si je traverse comme mentionné dans mon code, il sera assez coûteux en tenant compte des données importantes avec plus de lignes et de colonnes.