Согласно the documentation из Workbook.Range
, вы можете указать запятые в первом аргументе для обеспечения объединения.Excel interop не принимает диапазоны с запятыми
Однако следующий код бросает COMException
с HRESULT 0x800A03EC
на линии, которая получает диапазон:
using Microsoft.Office.Interop.Excel;
public void RangeWithCommas() {
var excel = new Application();
var wb = excel.Workbooks.Add(xlWBATemplate.xlWBATWorksheet);
var ws = (Worksheet)wb.Worksheets[1];
var range = ws.Range["A1,A2"]; // this throws an exception
Console.WriteLine(range.Address[false,false]);
ws.Delete();
wb.Close(false);
excel.Quit();
}
Как я могу сделать или исправить это?
P.S. Я знаю Application.Union, но я бы очень не хотел его использовать, потому что нет простого способа предоставить переменное количество аргументов.
ли вы проверить, если его проблемы с вашей местности? Точнее, ваш разделитель списков. Перейдите в свои региональные настройки на панели управления и проверьте. Затем запустите код с разделителем заданного списка. Btw. Разве «А1: А2» не сделал бы трюк? –
@ AnalystCave.com Спасибо, вот и все. Глупый я. – dtech
@ AnalystCave.com В этом случае 'A1: A2' действительно будет идентичным, но в случае, например, 'A1, E8, F100', это не так. И именно поэтому мне это нужно :) – dtech