2010-03-10 1 views
1

J'ai créé une plage de noms sur la feuille "A", donc j'ai besoin d'utiliser cette plage comme validation ComboBox sur la feuille B. Je veux savoir comment est-ce que je peux définir la valeur en C#?Comment créer une validation à partir de la plage de noms d'une autre feuille de calcul dans Excel en utilisant C#?

+0

Vous voulez savoir comment par programme? si c'est le cas, de quelles parties avez-vous besoin d'aide (création de la plage, définition de la valeur de validation, ou ...). Ou vous voulez juste savoir comment le faire manuellement? –

+0

Je veux savoir comment définir la validation en tant que plage en utilisant C#. – Anonymous

+0

gotcha. S'il vous plaît voir ci-dessous. –

Répondre

2

Les feuilles n'auront pas d'importance car vous référencerez simplement la plage nommée de la plage de valeurs de la liste. Ici vous allez ci-dessous (suppose Interop) - listValidatingRange est l'endroit où vous avez vos valeurs à afficher dans la liste déroulante - ajoutez-le comme une plage nommée. cellThatNeedsValidating est la cellule dans laquelle vous souhaitez que la liste déroulante apparaisse - ajoutez-la en tant que plage nommée. Ensuite, sur cellThatNeedsValidating, ajoutez la validation à celle de "=ListValidatingRange".

private void SetValidation() 
{ 

    Microsoft.Office.Tools.Excel.NamedRange listValidatingRange = 
     this.Controls.AddNamedRange(this.Range[""C1:C13"", missing], 
     "ListValidatingRange"); 

    Microsoft.Office.Tools.Excel.NamedRange cellThatNeedsValidating = 
     this.Controls.AddNamedRange(this.Range[""A1"", missing], 
     "cellThatNeedsValidating"); 

    cellThatNeedsValidating.Validation.Add(
     Excel.XlDVType.xlValidateList , 
     Excel.XlDVAlertStyle.xlValidAlertStop, 
     missing, "=ListValidatingRange", missing); 
} 
+0

C'est du travail, mais j'ai besoin de 4 heures avant d'accepter cela comme réponse correcte. En outre, j'ai une autre question de relation ici http://stackoverflow.com/questions/2497531/how-to-create-validation-range-from-value-that-input-by-user – Anonymous

+0

Super pour entendre ça fonctionne. Regardera l'autre question maintenant. –

Questions connexes