ワークシート内のセルのコレクションを選択する必要があります。私は範囲を選択する方法を見つけることができますが、細胞が「分離されている」場合は選択できません。例えばセルのコレクションを選択
の "$ D $ 4"、$ G $ 9" ...
マイコード:
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();
});
ここでの問題は、新しい範囲が選択されるたびに、以前の選択があるということです。
に別のアプローチを失ったそれは動作しません、例外Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel._Application.get_Range(Object Cell1, Object Cell2)
を上げ、私が得る範囲は以下の通りである。"$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();
どのように私はそれを達成するだろうか?
オフィスバージョン2016
ループ内にセル参照の文字列を作成し、ループの後に作成した文字列を使用してこれらのセルを選択します。 – ManishChristian
@ManishChristian私はすでにこの解決策を試して、うまくいきませんでした。私は私がやったことを示すために質問を修正します。 – blfuentes
[** this **](http://stackoverflow.com/a/6155286/1652222)の回答が役に立つかどうかを確認してください。 – ManishChristian