Je dois sélectionner une collection de cellules dans une feuille de calcul. Je pourrais trouver comment sélectionner une gamme, mais pas quand les cellules sont "isolées".Sélectionner une collection de cellules
Par exemple "$ D 4 $", $ G $ 9" ...
Mon code:
var excelApp = Globals.ThisAddIn.Application;
List<string> unlockedCells = new List<string>();
foreach (_Excel.Range cells in excelApp.ActiveSheet.UsedRange)
{
if (!cells.Locked)
{
unlockedCells.Add(cells.Address);
}
}
unlockedCells.ForEach(_c =>
{
excelApp.Range[_c].Select();
});
Le problème ici est que chaque fois qu'une nouvelle gamme est sélectionnée, la sélection précédente est .. perdu
Une autre approche Il ne fonctionne pas, soulève exception Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel._Application.get_Range(Object Cell1, Object Cell2)
la gamme que je reçois est la suivante: "$D$8,$E$8,$D$9,$E$9,$D$10,$E$10,$D$11,$E$11,$D$12,$E$12"
StringBuilder output = new StringBuilder();
...
output.Append(String.Format("{0},", cells.Address));
string rangeDef = output.ToString().Left(output.Length - 1);
excelApp.Range[rangeDef].Select();
Comment pourrais-je y accéder?
version Office 2016
Créez une chaîne de références de cellule dans votre boucle et sélectionnez ces cellules en utilisant la chaîne que vous avez créée après votre boucle. – ManishChristian
@ManishChristian J'ai déjà essayé cette solution et je n'ai pas travaillé. Je vais modifier la question pour montrer ce que j'ai aussi fait. – blfuentes
Voyez si la réponse de [** this **] (http://stackoverflow.com/a/6155286/1652222) pourrait fonctionner pour vous. – ManishChristian